我正在工作中的遗留代码。我们将文件存储在class A(object):
@property
def foo():
return 1
中。我需要做的是将文件从一个S3存储桶移动到另一个(我们新应用程序使用的存储桶)。当一个人将文件上传到我们的应用程序时,会有很多事情发生,所以我决定最简单的方法是模拟用户将文件上传到新的端点。
现在,我实际上如何从URL作为文件对象获取文件,然后将其代理到另一个端点?另外,有没有一种方法无需首先下载文件?我担心视频等较大的文件。
到目前为止,我所做的是:
attr_wrapper
我得到的错误是:
AWS S3
现在,我假设这是因为url= 'https://example.s3.com/image'
file = urllib.request.urlopen(url, context=ssl._create_unverified_context())
payload = {'file': open(file, 'rb')}
data = {'title': 'Picture title'}
requests.post(final_url, files=payload, data=data, headers=headers, verify=False)
无处可放文件,甚至是暂时的。
如何解决此问题,有什么更好的方法?
答案 0 :(得分:1)
使用Boto可能是您的最佳选择,前提是您能够直接访问存储桶。这个答案是一个很好的参考。 How to move files between two Amazon S3 Buckets using boto?