如何使用boto将zip文件上传到s3?
问题描述:
我压缩了一个具有多个子目录的文件夹。当我把它上传使用博托 到S3通过阅读这个样子,如何使用boto将zip文件上传到s3?
zipdata = open(os.path.join(os.curdir, zip_file), 'rb').read()
然后从复制到根目录下的所有subdirectries的所有文件。这在s3中不存在子目录。
如何将文件夹的zip文件上传到s3?
答
运行上面显示的命令后,zip_data
将包含zip文件中包含的字节。如果您将这些数据写入S3,您将在S3中获得一个包含该数据的对象(键)。那是你要的吗?
这听起来像是你想要压缩文件被扩展,它内部的所有单个文件和目录作为单独的对象存储在S3中。如果是这种情况,则需要在本地扩展zip文件,然后遍历层次结构并将每个单独的文件存储在S3中。您可以使用boto中的s3put
命令行工具为您完成此操作。
无法让S3自动为您自动解压zip文件的内容。
S3没有目录 – tkone 2012-03-12 23:17:57
是的,但它为什么应该是? – user12345 2012-03-12 23:21:05
您可以通过在文件名中放入斜杠来伪造目录。 – 2012-03-13 00:12:16