草庐IT

s3DistCp

全部标签

python - 如何使用 boto 库生成临时 url 以将文件上传到 Amazon S3?

我知道如何用这种方式下载文件:key.generate_url(3600)但是当我尝试上传时:key.generate_url(3600,method='PUT'),url不起作用。有人告诉我:我们计算的请求签名与您提供的签名不匹配。检查您的key和签名方法。我在boto主页上找不到有关如何使用函数generate_url(method='PUT')的示例代码。这里有人知道如何使用它进行上传吗?如何设置上传文件的路径参数? 最佳答案 我找到了一些时间来试验这个,这就是我发现的。>>>importboto>>>c=boto.conne

python - 如何使用 boto 库生成临时 url 以将文件上传到 Amazon S3?

我知道如何用这种方式下载文件:key.generate_url(3600)但是当我尝试上传时:key.generate_url(3600,method='PUT'),url不起作用。有人告诉我:我们计算的请求签名与您提供的签名不匹配。检查您的key和签名方法。我在boto主页上找不到有关如何使用函数generate_url(method='PUT')的示例代码。这里有人知道如何使用它进行上传吗?如何设置上传文件的路径参数? 最佳答案 我找到了一些时间来试验这个,这就是我发现的。>>>importboto>>>c=boto.conne

python - 使用 boto3 从 S3 存储桶中读取文件内容

我通过执行读取S3存储桶中的文件名objs=boto3.client.list_objects(Bucket='my_bucket')while'Contents'inobjs.keys():objs_contents=objs['Contents']foriinrange(len(objs_contents)):filename=objs_contents[i]['Key']现在,我需要获取文件的实际内容,类似于open(filename).readlines()。最好的方法是什么? 最佳答案 boto3提供了一种资源模型,使诸如

python - 使用 boto3 从 S3 存储桶中读取文件内容

我通过执行读取S3存储桶中的文件名objs=boto3.client.list_objects(Bucket='my_bucket')while'Contents'inobjs.keys():objs_contents=objs['Contents']foriinrange(len(objs_contents)):filename=objs_contents[i]['Key']现在,我需要获取文件的实际内容,类似于open(filename).readlines()。最好的方法是什么? 最佳答案 boto3提供了一种资源模型,使诸如

python - 如何更改 Amazon S3 中对象的元数据

如果您已将对象上传到AmazonS3存储桶,如何使用API更改元数据?可以在AWS管理控制台中执行此操作,但不清楚如何以编程方式完成。具体来说,我在Python中使用botoAPI,并且从阅读源代码中可以清楚地看出,使用key.set_metadata仅在创建对象之前有效,因为它只会影响本地字典。 最佳答案 看来您需要使用“PUTObject(Copy)”和x-amz-metadata-directive:REPLACEheader以及元数据来覆盖对象本身。在boto中,可以这样完成:k=k.copy(k.bucket.name,k

python - 如何更改 Amazon S3 中对象的元数据

如果您已将对象上传到AmazonS3存储桶,如何使用API更改元数据?可以在AWS管理控制台中执行此操作,但不清楚如何以编程方式完成。具体来说,我在Python中使用botoAPI,并且从阅读源代码中可以清楚地看出,使用key.set_metadata仅在创建对象之前有效,因为它只会影响本地字典。 最佳答案 看来您需要使用“PUTObject(Copy)”和x-amz-metadata-directive:REPLACEheader以及元数据来覆盖对象本身。在boto中,可以这样完成:k=k.copy(k.bucket.name,k

python - 如何在 boto S3 中获取文件/ key 大小?

必须有一种简单的方法来获取文件大小(key大小),而无需提取整个文件。我可以在AWSS3浏览器的属性中看到它。而且我认为我可以从“HEAD”请求的“Content-length”header中删除它。但我并没有将关于如何用boto做到这一点的点点滴滴联系起来。如果您发布比standardbotodocs中更全面的示例的链接,请多加赞赏.编辑:所以以下似乎可以解决问题(尽管从查看源代码我不完全确定。):bk=conn.get_bucket('my_bucket_name')ky=boto.s3.key.Key(bk)ky.open_read()##ThissendsaGETrequest

python - 如何在 boto S3 中获取文件/ key 大小?

必须有一种简单的方法来获取文件大小(key大小),而无需提取整个文件。我可以在AWSS3浏览器的属性中看到它。而且我认为我可以从“HEAD”请求的“Content-length”header中删除它。但我并没有将关于如何用boto做到这一点的点点滴滴联系起来。如果您发布比standardbotodocs中更全面的示例的链接,请多加赞赏.编辑:所以以下似乎可以解决问题(尽管从查看源代码我不完全确定。):bk=conn.get_bucket('my_bucket_name')ky=boto.s3.key.Key(bk)ky.open_read()##ThissendsaGETrequest

python - 模拟boto3 S3客户端方法Python

我正在尝试从boto3s3客户端对象模拟一个单一方法以引发异常。但我需要所有其他方法才能让这个类正常工作。这样我就可以在执行upload_part_copy时发生错误时测试单个异常测试。第一次尝试importboto3frommockimportpatchwithpatch('botocore.client.S3.upload_part_copy',side_effect=Exception('ErrorUploading'))asmock:client=boto3.client('s3')#Shouldreturnactualresulto=client.get_object(Buc

python - 模拟boto3 S3客户端方法Python

我正在尝试从boto3s3客户端对象模拟一个单一方法以引发异常。但我需要所有其他方法才能让这个类正常工作。这样我就可以在执行upload_part_copy时发生错误时测试单个异常测试。第一次尝试importboto3frommockimportpatchwithpatch('botocore.client.S3.upload_part_copy',side_effect=Exception('ErrorUploading'))asmock:client=boto3.client('s3')#Shouldreturnactualresulto=client.get_object(Buc