gpt4 book ai didi

node.js - 使用 Node/Knox 上传到 S3 : socket hang up

转载 作者:太空宇宙 更新时间:2023-11-03 23:38:56 28 4
gpt4 key购买 nike

我正在尝试 get() 文件并将它们流式传输到我的 s3 存储桶,有人可以告诉我我做错了什么吗?

我的代码:

var client = knox.createClient({
key: 'AAAAAAAAAAAA',
secret: 'BBBBBBBBBBBB',
bucket: 'my-imgs',
});
var elem = list.shift(); // {_id:'filename.jpg', main_img: 'http://example.com/file.jpg'}
request.get(elem.main_img,function(err,res){
var headers = {
'Content-Length': res.headers['content-length'],
'Content-Type': res.headers['content-type'],
'x-amz-acl': 'public-read'
};
console.log(headers) //outputs are ok, error comes after
var req = client.putStream(res, elem._id, headers,function(err,s3res){
if(err) console.log(err);
console.log(s3res);
});
}).on('error', function(err) {
console.log(err)
});

header 对象已正确填充,请求不会出现任何错误,几秒钟后我得到:

{ [Error: socket hang up] code: 'ECONNRESET' }

我是否必须以特定方式配置我的存储桶才能接受传输?我刚刚通过 AWS 控制台按照“美国标准”创建了它,并且只做了一件事,添加了一个我认为允许上传的策略。我感觉这可能是问题所在,但我不知道如何解决它,而且我看到的所有教程都非常过时,请给我线索!

政策:

{
"Statement": [
{
"Sid": "allow-public-read",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::my-imgs/*"
},
{
"Sid": "allow-public-put",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::my-imgs/*"
}
]
}

最佳答案

你可以在你的 app.js 中尝试这个

var http = require('http');

//increase the max socket limit
http.globalAgent.maxSockets = 1024;

关于node.js - 使用 Node/Knox 上传到 S3 : socket hang up,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27392923/

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