我想从s3存储桶中获取的图像有两个目的:
对于第二个目的,有必要在文档中给出一个显示在浏览器中的图像链接:https://developers.google.com/maps/documentation/javascript/examples/groundoverlay-simple
var historicalOverlay = new google.maps.GroundOverlay(
'https://www.lib.utexas.edu/maps/historical/newark_nj_1922.jpg',
imageBounds);
historicalOverlay.setMap(map);
但我还想要一个用户可以从中下载图像的链接。
我使用预签名URL通过使用以下代码获取图像文件的URL:
const url = s3.getSignedUrl('getObject', {
Bucket: myBucket,
Key: myKey,
Expires: signedUrlExpireSeconds,
})
我读过,如果我希望链接显示在浏览器中而不是下载,那么我必须将contentType设置为image / png。但如果我这样做,那么我无法获得下载链接。
我想知道是否有办法完成这两项任务。
我正在为此项目使用带有nodeJs后端的Angular 4。
谢谢你提前!
您可以使用ResponseContentType
函数的getObject
参数设置响应的内容类型:
const url = s3.getSignedUrl('getObject', {
Bucket: myBucket,
Key: myKey,
Expires: signedUrlExpireSeconds,
ResponseContentType: "image/png",
})