【问题标题】:Angular | Partially import aws-sdk in typescript角 |在打字稿中部分导入 aws-sdk
【发布时间】:2019-12-17 12:41:55
【问题描述】:
我在我的 Angular 应用程序中使用 aws-sdk。
捆绑包非常大,我只使用了库的一小部分:
问题:有没有办法只部分导入 aws-sdk?
请注意:
- 我不能使用'customize & download',因为我使用的是 Amplify(它具有 aws-sdk 作为依赖项)
- 我目前通过以下方式导入 AWS:
import * as AWS from 'aws-sdk';
- 我只使用 Cognito、S3、Lambda、DynamoDB 和 IoT Core
【问题讨论】:
标签:
angular
typescript
amazon-web-services
aws-amplify
【解决方案1】:
从文档中,您可以像这样导入 AWS 开发工具包的各个部分:
// import individual service
import S3 from 'aws-sdk/clients/s3';
您需要查阅文档/类型定义以查看您想要的确切名称。
避免导入整个“aws-sdk”包,因为它不会被树震动
【解决方案2】:
在我的应用程序中,我只使用 S3。我设法减少了捆绑包的大小,如下所示:
import AWS from 'aws-sdk/global';
import S3 from 'aws-sdk/clients/s3';
//Here is an example of code used to perform file upload.
AWS.config.update({
accessKeyId: "YOUR-ACCESS-KEY",
secretAccessKey: "YOUR-SECRET",
"region": "us-east-1"
});
var file = document.getElementById("input-upload").files[0];
var bucket = new S3({params: {Bucket: 'mybucket'}});
var params = {Key: 'myfolder', ContentType: file.type, Body: file};
bucket.upload(params);