amazon-web-services - 生成 AWS s3 Presigned URL 时出现超时错误
问题描述
我创建了一个生成预签名 URL 以将对象上传到 AWS S3 的路由。它最初工作,但最近,它返回一个超时错误。 这是我的控制器代码:
async (req, res, next)=>{
const BUCKET = req.params.bucket;
const KEY = 'myKey_'+ uuid.v4();
const EXPIRATION = 60 * 60 * 1000;
let signedUrl;
try{
// Also have a configuration file ~.aws/.credentials
const s3 = new S3({
accessKeyId: process.env.AWS_ACCESS_KEY,
secretAccessKey: process.env.AWS_SECRET_KEY,
region: 'ap-south-1'
});
// creating a s3 presigner obj
const signer = new S3RequestPresigner({ ...s3.config });
// creating file upload request
const AWSUploadRequest = await createRequest(s3, new PutObjectCommand({
Bucket: BUCKET,
Key: KEY
}));
const expire = new Date(Date.now() + EXPIRATION);
// creating & formating presigned URL
signedUrl = formatUrl(await signer.presign(AWSUploadRequest, expire));
console.log(`Generated Signed URL: ${signedUrl}`);
}catch(err){
console.log(`Error creating presigned url ${err}`);
return next(
new ErrorResponse(
`Error while generating aws s3 presigned url`,
500
)
)}
res.status(200).json({
signedUrl
})
}
这是我的日志:
AWSUploadReq: {"method":"PUT","hostname":"s3.ap-south-1.amazonaws.com","query":{"x-id":"PutObject"},"headers":{"Content-Type":"application/octet-stream","user-agent":"aws-sdk-nodejs-v3-@aws-sdk/client-s3/1.0.0-rc.7 win32/v10.15.3"},"protocol":"https:","path":"/dammnn/myKey_file-c6f198d6-9e91-4892-8c88-8a49e15406c1"}
Error creating presigned url Error: TimeoutError
关于请求超时的原因非常模糊。寻找一些相同的指导。谢谢。
解决方案
推荐阅读
- javascript - 如何在不和谐的机器人消息中提及 2 个用户
- javascript - 在 Ant Design 中使用带有 ProTable 的过滤器
- python - Python win32 - 为什么在提取 Outlook 日历数据时我的 .Restrict by date 失败?
- mongodb - 如何在 mongdb 中不返回查找结果
- r - ppp对象的规则是什么?是否可以为 sapply 函数选择两个变量?
- rxjs - NGRX 效果和动作顺序
- batch-file - 同时启动多个 .vbs 和 .bat 脚本
- javascript - 延迟加载vue时向用户显示加载屏幕
- python - 最受欢迎的嵌套类别
- linux - 如何为我的 AMD Linux 系统构建 Tensorflow?