使用Angular 2+从AWS S3下载文件

时间:2017-10-31 23:27:42

标签: asp.net angular amazon-s3

我有一个ASP.NET核心Web应用程序,我正在使用Angular 4.有很多资源显示如何将文件上传到S3,我已经完成了。但似乎没有任何关于阅读文件的内容。

我希望用户能够上传JSON文件,将其保存到S3,然后在不同的视图中向用户显示他们上传的所有文件以及显示文件的内容。

是否有资源显示如何执行此操作?

1 个答案:

答案 0 :(得分:0)

如果是公共可用项目,您可以使用S3 JavaScript SDKs'getObject'方法下载文件。

/* The following example retrieves an object for an S3 bucket. */

 var params = {
  Bucket: "examplebucket", 
  Key: "HappyFace.jpg"
 };
 s3.getObject(params, function(err, data) {
   if (err) console.log(err, err.stack); // an error occurred
   else     console.log(data);           // successful response
   /*
   data = {
    AcceptRanges: "bytes", 
    ContentLength: 3191, 
    ContentType: "image/jpeg", 
    ETag: "\"6805f2cfc46c0f04559748bb039d69ae\"", 
    LastModified: <Date Representation>, 
    Metadata: {
    }, 
    TagCount: 2, 
    VersionId: "null"
   }
   */
 });

如果文件是私有的,请在授权用户后使用S3 Signed UrlsCloudFront Signed Urls(或Cookie)从后端生成下载Url。使用此下载URL,直接在角应用程序中从S3下载文件。

示例:

另一种选择是直接从后端从AWS STS生成S3临时访问凭证,然后发送回Angular应用程序或使用AWS Cognito等身份验证服务,以便Angular应用程序可以使用它来调用S3 SDK。