需要将大量的文本存到cdn上,用了amazon s3的服务。
起先使用了PutObjectCommand 将文本存进去,然后再用GetObjectCommand ,getSignedUrl生成链接,但这个链接是有时效性的,还没有办法通过配置生成永久的链接。(通过PutObjectCommand生成的链接也是做put操作的,并不是get)
查了很多资料发现用这个方法是没有办法做到的,只能用另一个方法。使用@aws-sdk/lib-storage的Upload去上传,上传完成后返回的结果里会有一个Location字段,这个字段就是上传的地址,是永久性的链接,不存在5分钟过期的实效。
需要注意的是params要加一个ACL控制,public-read。
params: {
Bucket: DEFAULT_BUCKET_NAME,
Key: name,
Body: body,
ACL: 'public-read',
}