Cal*_*mar 6 python amazon-s3 amazon-web-services boto3
我正在尝试将内存中的 zip 文件上传到 S3 存储桶(以避免服务器上出现临时文件)。
这是我的代码:
import zipfile
import io
zip_bytes_io = io.BytesIO()
zip_archive = zipfile.ZipFile(zip_bytes_io, mode='a',
compression=zipfile.ZIP_DEFLATED)
zip_archive.writestr('test.txt', b'My string')
s3_client = boto3.client('s3')
zip_bytes_io.seek(0) # So that bytes are read from beginning
s3_client.upload_fileobj(zip_bytes_io, test_bucket, 'test.zip')
Run Code Online (Sandbox Code Playgroud)
当我运行上面的代码时,它确实将文件上传到 S3 存储桶。但是,当我下载该文件时,我无法解压缩它。我收到错误:“错误 1 - 不允许操作。”
我认为这是因为我一开始就没有正确上传文件。任何帮助表示赞赏:)