【发布时间】:2022-12-09 11:10:56
【问题描述】:
当我想将大于 1MB 的文件上传到我公司网络中的 S3 存储桶时,我收到错误消息: (如果文件大小 < 1MB,上传文件正常)
500: null
at Request.extractError (D:\GitClient\Remote\CloudPlatformWebAPI\node_modules\aws-sdk\lib\services\s3.js:711:35)
at Request.callListeners (D:\GitClient\Remote\CloudPlatformWebAPI\node_modules\aws-sdk\lib\sequential_executor.js:106:20)
at Request.emit (D:\GitClient\Remote\CloudPlatformWebAPI\node_modules\aws-sdk\lib\sequential_executor.js:78:10)
at Request.emit (D:\GitClient\Remote\CloudPlatformWebAPI\node_modules\aws-sdk\lib\request.js:686:14)
at Request.transition (D:\GitClient\Remote\CloudPlatformWebAPI\node_modules\aws-sdk\lib\request.js:22:10)
at AcceptorStateMachine.runTo (D:\GitClient\Remote\CloudPlatformWebAPI\node_modules\aws-sdk\lib\state_machine.js:14:12)
at D:\GitClient\Remote\CloudPlatformWebAPI\node_modules\aws-sdk\lib\state_machine.js:26:10
at Request.<anonymous> (D:\GitClient\Remote\CloudPlatformWebAPI\node_modules\aws-sdk\lib\request.js:38:9)
at Request.<anonymous> (D:\GitClient\Remote\CloudPlatformWebAPI\node_modules\aws-sdk\lib\request.js:688:12)
at Request.callListeners (D:\GitClient\Remote\CloudPlatformWebAPI\node_modules\aws-sdk\lib\sequential_executor.js:116:18) {
code: 500,
region: null,
time: 2022-11-22T09:07:55.279Z,
requestId: null,
extendedRequestId: undefined,
cfId: undefined,
statusCode: 500,
retryable: true
}
我发现这个错误类似于这个问题(https://github.com/localstack/localstack/issues/1410), 但是在创建 s3 对象时尝试将 s3ForcePathStyle 设置为 true 后,我仍然遇到相同的错误。
这是我的代码:
const s3 = new AWS.S3({apiVersion: '2006-03-01', s3ForcePathStyle: true});
let result = await s3.upload( {Bucket: bucket_name, Key: file_path, Body: request.files.buffer}).promise();
// using upload and putObject api return same error
console.log(result);
但是如果我在家里运行代码,没有错误,文件上传成功。
在我的代码中,我将 NODE_TLS_REJECT_UNAUTHORIZED 设置为禁用以避免 ssl 证书问题,但仍然无法正常工作
process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = 0;
我也尝试在我的公司使用 AWS CLI COMMAND (aws s3api put-object ...),上传文件大小 > 1MB 工作正常!!
我不明白为什么我不能使用 node.js 代码在我的公司上传大于 1MB 的文件,AWS CLI 和 npm aws-sdk 库不是使用相同的协议吗?
我猜这个错误可能与我公司的环境有关,但 AWS CLI 运行良好。所以,我认为它可能可以解决我的代码中的问题,希望有人能提供帮助,非常感谢。
【问题讨论】:
标签: node.js amazon-web-services amazon-s3