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