我压缩了一个包含多个子目录的文件夹。当我使用boto将其上传到s3时 通过这样阅读,
zipdata = open(os.path.join(os.curdir, zip_file), 'rb').read()
然后将所有子目录中的所有文件复制到根目录。这是s3中没有子目录。
如何将文件夹的zip文件上传到s3?
答案 0 :(得分:0)
运行上面显示的命令后,zip_data
将包含zip文件中包含的字节。如果您随后将该数据写入S3,您将在S3中获得包含该数据的单个对象(键)。这就是你想要的吗?
听起来您希望扩展zip文件,并将其中的所有单个文件和目录作为单个对象存储在S3中。如果是这种情况,则需要在本地扩展zip文件,然后遍历层次结构并将每个单独的文件存储在S3中。您可以使用boto中的s3put
命令行工具为您执行此操作。
没有办法让S3自动为你自动解压缩zip文件的内容。