同时获取 - 使用aws sdk从s3存储桶中下载链接和链接到浏览器中查看

问题描述 投票:3回答:1

我想从s3存储桶中获取的图像有两个目的:

  1. 可供下载
  2. 要使用谷歌地图api为javascript覆盖在谷歌地图上

对于第二个目的,有必要在文档中给出一个显示在浏览器中的图像链接: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。

谢谢你提前!

javascript node.js angular amazon-web-services amazon-s3
1个回答
0
投票

您可以使用ResponseContentType函数的getObject参数设置响应的内容类型:

const url = s3.getSignedUrl('getObject', {
    Bucket: myBucket,
    Key: myKey,
    Expires: signedUrlExpireSeconds,
    ResponseContentType: "image/png",

})
© www.soinside.com 2019 - 2024. All rights reserved.