当我将较大的图像(3 + MB)上传到AWS S3存储桶时,只有部分图像被保存到存储桶中(大约占图像的前10%,其余部分显示为灰色空间)。这些图像始终显示256 KB大小。小文件没有任何问题。
这是我的代码:
s3 = boto3.resource(' s3') s3.Bucket(settings.AWS_MEDIA_BUCKET_NAME).put_object(Key = fname,Body = data)
...其中数据是图像文件的二进制数据。
当文件较小时没有问题,而在S3存储桶中,较大的文件都显示为256 KB。
我还没有找到任何关于这可能发生的原因的文档。有人可以指出我错过了什么吗?
谢谢!
答案 0 :(得分:0)
我遇到了同样的问题,花了我几个小时才弄清楚。我终于通过创建流来解决它。这是我的代码:
const uploadFile = (filePath) => {
let fileName = filePath;
fs.readFile(fileName, (err, data) => {
let body= fs.createReadStream(filePath);
if (err) throw err;
const params = {
Bucket: 'bucketname', // pass your bucket name
Key: fileName;
Body: body,
ContentType: 'image/jpeg',
ContentEncoding: 'base64',
};
s3.upload(params, function(s3Err, data) {
if (s3Err) throw s3Err;
console.log(`File uploaded successfully at ${data.Location}`);
});
});
};