草庐IT

python - Boto - 将文件上传到 Amazon S3 上的特定位置

这是我正在使用的代码importsysimportbotoimportboto.s3#AWSACCESSDETAILSAWS_ACCESS_KEY_ID=''AWS_SECRET_ACCESS_KEY=''bucket_name=AWS_ACCESS_KEY_ID.lower()+'-mah-bucket'conn=boto.connect_s3(AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY)bucket=conn.create_bucket(bucket_name,location=boto.s3.connection.Location.DEFAUL

python - 从 boto3 检索 S3 存储桶中的子文件夹名称

使用boto3,我可以访问我的AWSS3存储桶:s3=boto3.resource('s3')bucket=s3.Bucket('my-bucket-name')现在,存储桶包含文件夹first-level,该文件夹本身包含多个以时间戳命名的子文件夹,例如1456753904534。我需要知道这些子文件夹的名称以用于我正在做的另一项工作,我想知道是否可以让boto3为我检索这些子文件夹。所以我尝试了:objs=bucket.meta.client.list_objects(Bucket='my-bucket-name')它给出了一个字典,它的键'Contents'给了我所有的三级文件而

python - Amazon S3 boto - 如何删除文件夹?

我在s3中创建了一个名为“test”的文件夹,并将“test_1.jpg”、“test_2.jpg”推送到“test”中。如何使用boto删除文件夹“test”? 最佳答案 这里是2018(几乎是2019)版本:s3=boto3.resource('s3')bucket=s3.Bucket('mybucket')bucket.objects.filter(Prefix="myprefix/").delete() 关于python-AmazonS3boto-如何删除文件夹?,我们在Stac

python - Boto3/S3 : Renaming an object using copy_object

我正在尝试使用pythonboto3重命名我的s3存储桶中的文件,但我无法清楚地理解这些参数。有人可以帮我吗?我的计划是将对象复制到一个新对象,然后删除实际对象。我在这里发现了类似的问题,但我需要使用boto3的解决方案。 最佳答案 我找到了另一个解决方案s3=boto3.resource('s3')s3.Object('my_bucket','new_file_key').copy_from(CopySource='my_bucket/old_file_key')s3.Object('my_bucket','old_file_ke

python - Boto3 资源和客户端是否等效?何时使用一个或其他?

Boto3专家,客户端和资源之间有什么功能差异(如果有的话)?它们在功能上是否相同?您会选择在什么条件下调用Boto3资源与客户端(反之亦然)?虽然我已尽力通过RTM回答这个问题...遗憾,但我无法理解两者之间的功能差异。你的想法?很多,很多谢谢!PlaneWryter 最佳答案 资源只是对客户端的基于资源的抽象。他们不能做客户不能做的任何事情,但在许多情况下,他们更好用。他们实际上有一个嵌入式客户端,用于发出请求。缺点是它们并不总是支持100%的服务功能。 关于python-Boto3

python - 使用 Amazon s3 boto 库,如何获取已保存 key 的 URL?

我正在保存一个存储桶的key:key=bucket.new_key(fileName)key.set_contents_from_string(base64.b64decode(data))key.set_metadata('Content-Type','image/jpeg')key.set_acl('public-read')保存成功后,如何访问新建文件的URL? 最佳答案 如果key是公开可读的(如上所示),您可以使用Key.generate_url:url=key.generate_url(expires_in=0,quer

python - 使用 boto3 连接 CloudFront 时如何选择 AWS 配置文件

我正在使用Boto3python库,并希望连接到AWSCloudFront。我需要指定正确的AWS配置文件(AWS凭证),但是查看官方文档,我看不出有什么办法指定它。我正在使用代码初始化客户端:client=boto3.client('cloudfront')但是,这会导致它使用默认配置文件进行连接。我找不到可以指定使用哪个配置文件的方法。 最佳答案 我认为文档在揭示如何做到这一点方面并不出色。然而,它一直是受支持的功能,此pullrequest中有一些详细信息.所以有三种不同的方法可以做到这一点:选项A)使用配置文件创建一个新se

python - 如何使用 boto 将文件上传到 S3 存储桶中的目录

我想使用python复制s3存储桶中的文件。例如:我有存储桶名称=测试。在存储桶中,我有2个文件夹,名称为“dump”和“input”。现在我想使用python将文件从本地目录复制到S3“转储”文件夹...有人可以帮帮我吗? 最佳答案 注意:此答案使用boto。见otheranswer使用boto3,即newer.试试这个...importbotoimportboto.s3importsysfromboto.s3.keyimportKeyAWS_ACCESS_KEY_ID=''AWS_SECRET_ACCESS_KEY=''buck

python - 使用 boto3 检查 s3 的存储桶中是否存在 key

我想知道boto3中是否存在key。我可以循环存储桶的内容并检查key是否匹配。但这似乎更长而且有点矫枉过正。Boto3官方文档明确说明了如何执行此操作。可能是我错过了显而易见的事情。谁能指出我如何做到这一点。 最佳答案 Boto2的boto.s3.key.Key对象曾经有一个exists方法,该方法通过执行HEAD请求并查看key来检查S3上是否存在key结果,但似乎不再存在。你必须自己做:importboto3importbotocores3=boto3.resource('s3')try:s3.Object('my-bucke

python - 使用 Boto3 将 S3 对象作为字符串打开

我知道使用Boto2可以将S3对象作为字符串打开:get_contents_as_string()在boto3中是否有等效的功能? 最佳答案 read将返回字节。至少对于Python3,如果要返回字符串,则必须使用正确的编码进行解码:importboto3s3=boto3.resource('s3')obj=s3.Object(bucket,key)obj.get()['Body'].read().decode('utf-8') 关于python-使用Boto3将S3对象作为字符串打开,