如何使用boto将zip文件上传到s3?

问题描述:

我压缩了一个具有多个子目录的文件夹。当我把它上传使用博托 到S3通过阅读这个样子,如何使用boto将zip文件上传到s3?

zipdata = open(os.path.join(os.curdir, zip_file), 'rb').read() 

然后从复制到根目录下的所有subdirectries的所有文件。这在s3中不存在子目录。

如何将文件夹的zip文件上传到s3?

+0

S3没有目录 – tkone 2012-03-12 23:17:57

+0

是的,但它为什么应该是? – user12345 2012-03-12 23:21:05

+1

您可以通过在文件名中放入斜杠来伪造目录。 – 2012-03-13 00:12:16

运行上面显示的命令后,zip_data将包含zip文件中包含的字节。如果您将这些数据写入S3,您将在S3中获得一个包含该数据的对象(键)。那是你要的吗?

这听起来像是你想要压缩文件被扩展,它内部的所有单个文件和目录作为单独的对象存储在S3中。如果是这种情况,则需要在本地扩展zip文件,然后遍历层次结构并将每个单独的文件存储在S3中。您可以使用boto中的s3put命令行工具为您完成此操作。

无法让S3自动为您自动解压zip文件的内容。