摘要
我必须使用s3公共URL将本地JSON文件上传到s3。我将PUT方法与formData一起使用以上传文件。文件已成功上传,但文件内容已修改。更准确地说,内容附加在请求的标头之后。
最简单的复制示例
我正在使用以下代码上传文件。
// Let the name of the file be **test.json**. The contents are as following:
{
"a": "1",
"b": "2"
}
js代码
// code starts here
const url= 'some s3 path url';
const options = {
method: 'PUT',
url: url,
headers: {
'x-amz-acl': 'bucket-owner-full-control'
},
formData: {
file: fs.createReadStream(path.join('./test.json'))
}
};
request(options, function (error, response, body) {
if (error) throw new Error(chalk.bold.red(error));
if (response.statusCode != 200) {
console.error(JSON.stringify(response.body));
return;
}
console.log(chalk.green.bold(response.statusCode));
})
预期行为
文件应该使用类似的数据上传到S3。
当前行为
文件已上传到S3存储桶,但文件内的内容已修改。 该文件的新内容为:
----------------------------054810111042388555675130
Content-Disposition: form-data; name="file"; filename="test.json"
Content-Type: application/json
{
"a": "1",
"b": "2"
}
----------------------------054810111042388555675130--
如何在不添加这些额外行的情况下修改上传文件的请求?