gpt4 book ai didi

node.js - axios 从 URL 获取文件并上传到 s3

转载 作者:行者123 更新时间:2023-12-04 14:14:41 28 4
gpt4 key购买 nike

我正在尝试使用 axios.get 从站点获取文件,然后将其直接上传到 S3。但是,文件已损坏或未正确编码,上传后无法打开。文件类型范围从 .jpg、.png 到 .pdf。这是我的代码:

axios.get(URL, {
responseEncoding: 'binary',
responseType: 'document',
}).then((response) => {
return new Promise((resolve, reject) => {
const s3Bucket = nconf.get('AWS_S3_BUCKET');

s3.upload({
'ACL': 'public-read',
'Body': response.data,
'Bucket': s3Bucket,
'Key': `static/${filePath}/${fileManaged.get('filename')}`,
}, function(err) {
if (err) {
return reject(err);
}
});
});
});

我试过修改 responseTypearraybuffer并使用 Buffer.from(response.data, 'binary').toString('base64') 创建缓冲区,无济于事。我错过了什么?

最佳答案

我能够通过使用 arraybuffer 让它工作和 .putObject函数代替 .upload

axios.get(encodeURI(url), {
responseType: 'arraybuffer',
}).then((response) => {
s3.putObject({
'ACL': 'public-read',
'Body': response.data,
'Bucket': s3Bucket,
'Key': `static/${filePath}/${fileManaged.get('filename')}`,
} function(err) {

关于node.js - axios 从 URL 获取文件并上传到 s3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61605078/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com