如何从s3存储段网址Angular下载文件

时间:2018-11-30 17:47:30

标签: angular amazon-web-services amazon-s3

我有url,并且不想投入工作来获取文件数据或blob。这就是我现在正在做的。

const url = 'https://s3-us-west-1.amazonaws.com/....';

const a: any = document.createElement('a');
a.href = url;
a.download = doc.name;
document.body.appendChild(a);
a.click();
document.body.removeChild(a);

但是当调用此函数时,它只是在新的浏览器选项卡中打开文档。我希望它实际上是从浏览器下载文件。  有什么想法为什么这行不通吗?

谢谢

1 个答案:

答案 0 :(得分:0)

从npm安装aws-sdk软件包。

npm i aws-sdk --save

使用此代码将下载功能放入成功响应中

import { config, SecretsManager, S3 , CognitoIdentityCredentials} from 'aws-sdk';

    const bucket = new S3({
                        accessKeyId: <accessKeyId>,
                        secretAccessKey: <secretAccessKey>,
                        region: <region>
                    });

    const params = {        
                      Bucket: <BucketName>,
                      Key: <fileName>,
                   };

       bucket.getObject(params, (err:any, data:any) =>{
            if (err) {
                 // shows AWS s3 error
             }else{
                 // response of binary data 
                 // use your download function here
             }
        }).on('httpDownloadProgress',(progress) => {     
                 // shows file download progress
        });