【发布时间】:2021-12-03 03:28:45
【问题描述】:
我正在尝试将图像从外部 url 上传到 S3。
目前,我可以成功上传文件,但下载并打开后,我发现它已损坏。
这是我正在使用的代码(got 就是我用来获取资源的代码):
const got = require('got');
const Web3 = require('web3');
const s3 = new AWS.S3({
accessKeyId: AWS_ACCESS_KEY_ID,
secretAccessKey: AWS_SECRET_ACCESS_KEY,
});
const response = await got('https://example.com/image.jpg');
const uploadedFile = await s3
.upload({
Bucket: 'my_bucket',
Key: 'images/',
Body: response.body,
ContentType: 'image/jpeg',
})
.promise();
我尝试创建一个缓冲区,并使用 putObject 而不是上传,但我最终得到的文件在 S3 上只有几个字节。
【问题讨论】:
-
我认为您首先将文件保存在客户端上。然后写入 s3。
-
response.body的类型是什么? -
@ErmiyaEskandary response.body 看起来像这样:screencast.com/t/P893Oc8P 这是一个外部图像的示例:Link
-
@ErmiyaEskandary 我已经添加了我正在使用的依赖项和 S3 配置,这是默认配置,但它是我正在使用的确切代码。
标签: javascript node.js amazon-web-services amazon-s3