AWS S3实用程序

s3-wrapper的Python项目详细描述


s3包装

s3 wrapper是AWS的boto3包的s3相关功能的包装。在

快速入门

首先,安装库:

pip install s3-wrapper

接下来,设置凭证(例如~/.aws/credentials):

^{pr2}$

应在环境变量中设置以下值:

  1. AWS_PROFILE_NAME:AWS配置文件名
  2. S3\u BUCKET_NAME(可选):默认BUCKET名称

如果在环境变量中找不到S3\u BUCKET_NAME,则必须在使用任何实用程序之前设置默认目录:

s3 = S3Utils()
s3.set_default_bucket('test_bucket')

可以使用python-dotenv加载环境变量。在

示例

set_default_bucket

s3相关的操作设置默认bucket。用法:

s3.set_default_bucket('bucket_name')

move_object

为bucket中的对象分配一个新的键。这个过程包括创建一个新对象,将旧对象复制到新对象,然后删除旧对象。用法:

s3.move_object('directory/subdirectory1/file.json', 'directory/subdirectory2/file.json')

如果要在非默认存储桶上执行此操作,请使用:

s3.move_object('directory/subdirectory1/file.json', 'directory/subdirectory2/file.json', 'bucket_name')

copy_object

在bucket中为一个新的对象分配一个键。这个过程包括创建一个新对象,将旧对象复制到新对象,然后删除旧对象。用法:

s3.copy_object('new_object_key', 'src_object_key')

如果要在非默认存储桶上执行此操作,请使用:

s3.copy_object('new_object_key', 'src_object_key', 'bucket_name')

create_object

在bucket中创建一个新对象并设置其内容/主体。这个过程包括创建一个新对象,将旧对象复制到新对象,然后删除旧对象。用法:

import json
data = {
  'message': 'Hello world',
  'created_at': '2020-06-03 05:36:00'
}
formatted_data = json.dumps(data)
s3.create_object('key', formatted_data)

如果要在非默认存储桶上执行此操作,请使用:

s3.create_object('key', formatted_data, 'bucket_name')

upload_file

将文件作为对象上载到S3上的磁盘存储器上。用法:

file_path = os.path.join('/tmp', 'subdirectory', 'response.json')
s3.upload_file('file_key', file_path)

如果要在非默认存储桶上执行此操作,请使用:

file_path = os.path.join('/tmp', 'subdirectory', 'response.json')
s3.upload_file('file_key', file_path, 'bucket_name')

delete_object

从S3上的bucket中删除一个对象。用法:

s3.delete_object('key')

如果要在非默认存储桶上执行此操作,请使用:

s3.delete_object('key', 'bucket_name')

delete_objects

从存储桶中删除与提供的键匹配的对象。用法:

s3.delete_objects(['key1, key2', 'key3'])

如果要在非默认存储桶上执行此操作,请使用:

s3.delete_objects(['key1, key2', 'key3'], 'bucket_name')

find_files_with_prefix

查找与给定前缀匹配的文件/对象。如果您想要在一个特定的(假设的)目录中获取对象,这很有帮助。用法:

s3.find_files_with_prefix('/directory/subdirectory/prefix')

如果要在非默认存储桶上执行此操作,请使用:

s3.find_files_with_prefix('/directory/subdirectory/prefix', 'bucket_name')

file_exists

如果给定bucket中存在文件,则返回true。用法:

exists = s3.file_exists('object_key')

如果要在非默认存储桶上执行此操作,请使用:

exists = s3.file_exists('object_key', 'bucket_name')

generate_presigned_url

在给定的expiration秒后过期的bucket中的对象生成一个预先指定的url。在

^{pr21}$

如果要在非默认存储桶上执行此操作,请使用:

url = s3.generate_presigned_url('object_key', 3600, 'bucket_name')

download_file

将文件从存储桶下载到磁盘上的给定路径。在

s3.download_file('object_key', '/home/directory/path.json')

如果要在非默认存储桶上执行此操作,请使用:

s3.download_file('object_key', '/home/directory/path.json', 'bucket_name')

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
使用php调用java web服务时无法获取输出   java Netbeans:安装IMlet时出错。。。。仿真器错误   初始化期间Eclipse Juno SR 2中的java堆栈溢出   java在3d中寻找两个任意立方体的交集   代码中显示java“org.openqa.selenium.WebDriverException”错误   java使用AtomicInteger作为可变整数的替代品是一种好的做法吗?   当以编程方式设置背景颜色时,java版面在更新后会自动复制   java将字符串拆分为一个带有数字数据的字符串和另一个带有非数字数据的字符串   带有SSL协议的java AsyncHttpClient   C++服务器HTTN到java NtoHS客户端转换   java内存分配是基于引用类还是实例类?   java使用ProjectLombok安全吗?   grails“java版本”在命令提示符下不工作   java无法使用axis2实例化类型ADBDataSource   在Play Framework 2中进行多文件上传的java示例   java如何将二进制补码字符串转换为负十进制数?   windows 7在Java中获取不正确的操作系统名称   java如何禁用p:commandButton的enter键?   java如何从main方法加载servlet   java如何从imageView获取二进制位图