如何在预定义时间后切断 aws sdk s3 的连接?
how to cut out connection for aws sdk s3 after predefined time?
我在 node
应用程序中使用 aws-sdk
模块,
特别是 S3
库,写入 ceph
集群。
应用程序定期上传固定大小的文件。
ceph有时会分片,导致http上传请求卡顿500秒
如何取消对执行分片的存储桶的请求?
我如何为所有上传设置超时,比如 2 秒?
您可以在 httpOptions
中使用 timeout
。示例:
var s3 = new AWS.S3({apiVersion: '2006-03-01', httpOptions: {timeout: 2000}});
网上找了半天,找到了这个abort函数。
所以,如果它对任何人有帮助,这就是我实现它的方式:
const upload = (bucket, key, body, timeout = 2000) => {
const request = this.s3.upload({Bucket: bucket, Key: key, Body: body})
setTimeout(request.abort.bind(request), timeout)
return request.promise()
}
如果 timeout
通过,则会抛出 Error
和 RequestAbortedError
代码。
我在 node
应用程序中使用 aws-sdk
模块,
特别是 S3
库,写入 ceph
集群。
应用程序定期上传固定大小的文件。
ceph有时会分片,导致http上传请求卡顿500秒
如何取消对执行分片的存储桶的请求?
我如何为所有上传设置超时,比如 2 秒?
您可以在 httpOptions
中使用 timeout
。示例:
var s3 = new AWS.S3({apiVersion: '2006-03-01', httpOptions: {timeout: 2000}});
网上找了半天,找到了这个abort函数。
所以,如果它对任何人有帮助,这就是我实现它的方式:
const upload = (bucket, key, body, timeout = 2000) => {
const request = this.s3.upload({Bucket: bucket, Key: key, Body: body})
setTimeout(request.abort.bind(request), timeout)
return request.promise()
}
如果 timeout
通过,则会抛出 Error
和 RequestAbortedError
代码。