什么是 Amazon S3?

1.Amazon Simple Storage Service(Amazon S3)是一种对象存储服务,提供行业领先的可扩展性、数据可用性、安全性和性能。各种规模和行业的客户都可以使用 Amazon S3 存储和保护任意数量的数据,用于数据湖、网站、移动应用程序、备份和恢复、归档、企业应用程序、IoT 设备和大数据分析。Amazon S3 提供了管理功能,使您可以优化、组织和配置对数据的访问,以满足您的特定业务、组织和合规性要求。

Boto3API文档

2.python中使用

import logging
import tracebackimport boto3
import botocore
from boto3.session import Session
from botocore import client
from botocore.exceptions import ClientErrorlogger = logging.getLogger('info')class AmazonS3Util:def __init__(self, aws_access_key_id, secret_access_key, region_name):self.access_id = aws_access_key_idself.access_secret = secret_access_keyself.region_name = region_namesession = Session(aws_access_key_id=aws_access_key_id,aws_secret_access_key=secret_access_key,region_name=region_name)self.client_conn = boto3.client('s3',aws_access_key_id=aws_access_key_id,aws_secret_access_key=secret_access_key,config=botocore.client.Config(signature_version='s3v4'),region_name=region_name)self.session_conn = session.resource('s3')def upload_file_obj(self, bucket, file_key, file_obj, extra_args=None):"""对象上传至S3存储桶https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3.html#S3.Object.upload_file@param bucket: 存储桶名称-必须@param file_key: 需要上传文件路径+文件名称@param file_obj: 文件对象@param extra_args: 额外参数 如ACL配置@return: 当上传成功时为True;否则,False"""try:session = self.session_connbucket = session.Bucket(bucket)obj = bucket.Object(file_key)obj.upload_fileobj(file_obj, ExtraArgs=extra_args)return Trueexcept Exception as e:print(e.args)ex = traceback.format_exc()print('具体错误{}'.format(ex))return Falsedef generate_file_obj_url(self, bucket, file_key):"""生成对象URLhttps://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3.html#S3.Client.generate_presigned_url@param bucket: 存储桶名称@param file_key: 文件名称@return: url"""response_url = self.client_conn.generate_presigned_url(ClientMethod='get_object',Params={'Bucket': bucket,'Key': file_key})return response_urldef delete_obj(self, bucket, file_key):"""删除对象https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3.html#S3.Object.delete@param bucket: 存储桶@param file_key: 文件名称@return: 当删除成功时为True;否则,False"""try:bucket = self.session_conn.Bucket(bucket)obj = bucket.Object(file_key)obj.delete()return Trueexcept Exception as e:print(e.args)ex = traceback.format_exc()print('具体错误{}'.format(ex))return Falsedef bucket_exists(self, bucket_name):"""判断桶是否存在,是否有访问权限@return: 当bucket存在时为True;否则,假的"""try:self.client_conn.head_bucket(Bucket=bucket_name)logger.info("存储桶 {} 存在.".format(bucket_name))exists = Trueexcept ClientError:logger.warning("存储桶 {} 不存在,或者你没有权限.".format(bucket_name))exists = Falsereturn existsdef get_object(self, bucket, key):"""获取对象@param bucket: 存储桶@param key: 文件@return : boolean"""try:self.client_conn.get_object(Bucket=bucket, Key=key)return Trueexcept self.client_conn.exceptions.NoSuchKey:return Falsedef download_object(self, bucket, key, file_name):"""下载对象至本地@param file_name: 保存位置以及名称@param bucket: 存储桶@param key: 文件@return : boolean"""try:self.client_conn.download_file(bucket, key, file_name)return Trueexcept Exception as e:return e.argsdef copy_obj(self, source_bucket, to_bucket, file_key):"""复制对象@param source_bucket: 原存储桶@param file_key: 文件名称@param to_bucket: 新存储桶"""source_dict = {'Bucket': source_bucket,'Key': file_key}self.session_conn.meta.client.copy(source_dict, to_bucket, file_key)

AWS Boto3 S3对象上传与下载相关推荐

  1. 使用php和Amazon S3 sdk上传及下载文件

    使用php和Amazon S3 sdk上传及下载文件,下载Excel文件时总是报文件损坏的错误,解决方案如下 上传 require 'vendor/autoload.php';use Aws\S3\S ...

  2. Spring Boot项目集成AWS SDK连接到AWS S3,实现上传下载功能

    本文主要描写在Spring Boot项目里集成AWS SDK连接到AWS S3,实现上传下载功能的具体代码和注意事项.如有不足和错误之处,欢迎指正. AWS S3相关介绍 AWS S3(官网): ht ...

  3. Python实现向s3共享存储上传和下载文件

    Python实现向s3共享存储上传和下载文件 https://www.cnblogs.com/liang545621/p/10298617.html 使用Python从S3上传和下载文件 https: ...

  4. maven_使用Maven将文件上传和下载到S3

    maven 多年来,我已经看到许多团队以许多不同的方式使用Maven. Maven可用于许多ci / cd任务,而无需使用额外的管道代码,或者可用于在运行某些测试之前准备开发环境.通常,它是一种方便的 ...

  5. maven 文件上传下载_使用Maven将文件上传和下载到S3

    maven 文件上传下载 多年来,我已经看到许多团队以许多不同的方式使用Maven. Maven可用于许多ci / cd任务,而无需使用额外的管道代码,或者可用于在运行某些测试之前准备开发环境. 通常 ...

  6. 使用Maven将文件上传和下载到S3

    多年来,我已经看到许多团队以许多不同的方式使用Maven. Maven可用于许多ci / cd任务,而无需使用额外的管道代码,或者可用于在运行某些测试之前准备开发环境. 通常,它是一种方便的工具,在J ...

  7. 中意阳光年金 - AWS S3 附件上传

    AWS S3 附件上传 一.Java 代码调用 1.上传下载相关代码 2.配置文件 二.linux 服务器直接上传附件(大批量附件迁移) 1.linux安装awscli 1.1 安装awscli 1. ...

  8. XMLHttpRequest 对象实现文件上传和下载功能

    XMLHttpRequest 对象实现文件上传和下载功能(内含源码哦

  9. (十六)admin-boot项目之文件存储上传与下载minio

    (十六)文件存储上传与下载 项目地址:https://gitee.com/springzb/admin-boot 如果觉得不错,给个 star 简介: 这是一个基础的企业级基础后端脚手架项目,主要由s ...

最新文章

  1. 转:C#中Monitor对象与Lock关键字的区别分析
  2. (转载)Android项目实战(二十八):使用Zxing实现二维码及优化实例
  3. SAP系统上线后的变化
  4. 什么是进程?Python进程各部分内容介绍
  5. 无符号数的算术四则运算中的各类单词的识别_文本反垃圾在花椒直播中的应用概述...
  6. Java 理论与实践: 流行的原子
  7. oracle之 监听器无法启动的几个原因总结
  8. 苹果的编程语言--Swift
  9. 转载:国内从事机器视觉领域的公司
  10. [QualComm] RamDump log收集
  11. 网易游戏大咖专访丨《第五人格》主创团队畅谈游戏研发修炼记
  12. Unity资源管理(一)
  13. 涩会:大学学历——办理居住证的具体流程(深圳)
  14. 【Python】python转义字符
  15. 唱作俱佳,腾讯AI艾灵领唱中国新儿歌
  16. 呆呆和你谈谈入职CVTE一个月的感受
  17. 【论文笔记之 FDAF and MAF】Frequency-Domain and Multirate Adaptive filtering
  18. 配置mpls vpn基本组网-intranet
  19. (SIP-1-话机注册)关于IP话机通过SIP协议注册到PBX电话交换机的全过程解析-如何看wireshark中的报文
  20. 云原生 · DevOps`01 | 光速初识DevOps

热门文章

  1. wegame与服务器中断,wegame闪退六种解决方法
  2. 联想计算机功耗,如何查看CPU的消耗功率
  3. windows c 盘清理总结
  4. gif在线裁剪编辑图片怎么处理
  5. Qt+html+JavaScript实现类似QQ聊天界面的气泡效果
  6. 新型智能健身房如何破局重新定义健身行业
  7. SurfaceView为什么不能做动画?
  8. 探索C#之微型MapReduce
  9. 同样是E6同样是摩托罗拉,06年上市与19年上市,差距到底有多大
  10. moto E6刷机笔记