如何在两个URL之间使用Python代理文件

时间:2018-09-22 20:11:08

标签: python python-3.x http

我正在工作中的遗留代码。我们将文件存储在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) 无处可放文件,甚至是暂时的。

如何解决此问题,有什么更好的方法?

1 个答案:

答案 0 :(得分:1)

使用Boto可能是您的最佳选择,前提是您能够直接访问存储桶。这个答案是一个很好的参考。 How to move files between two Amazon S3 Buckets using boto?