如何使用boto将文件从Amazon S3流传输到Rackspace Cloudfiles?

发布于 2021-01-29 19:03:39

我正在将文件从S3复制到Cloudfiles,并且我想避免将文件写入磁盘。Python-
Cloudfiles库有一个object.stream()调用,看起来像我需要的,但我在boto中找不到等效的调用。我希望我能够做类似的事情:

shutil.copyfileobj(s3Object.stream(),rsObject.stream())

boto是否可以做到这一点(或者我猜想是否还有其他s3库)?

关注者
0
被浏览
53
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    boto中的Key对象代表S3中的对象,可以像迭代器一样使用,因此您应该可以执行以下操作:

    >>> import boto
    >>> c = boto.connect_s3()
    >>> bucket = c.lookup('garnaat_pub')
    >>> key = bucket.lookup('Scan1.jpg')
    >>> for bytes in key:
    ...   write bytes to output stream
    

    或者,就像您的示例一样,您可以执行以下操作:

    >>> shutil.copyfileobj(key, rsObject.stream())
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看