gpt4 book ai didi

javascript - 如何在我的 Aurelia 项目中本地使用 AWS SDK

转载 作者:行者123 更新时间:2023-11-30 13:55:17 25 4
gpt4 key购买 nike

我想在我的 Aurelia 项目中本地使用来自 AWS-SDK 的 SQS 队列,但我遇到了问题。

如果我在 Index.ejs 中使用 Amazon AWS-SDK 链接的实时 URL,那么它工作正常,但如果提供本地脚本路径链接,则会面临错误。

我尝试了很多技术但都失败了。在 Live Link 中工作正常并且没有错误,但是在本地路径“Config”中出现未定义错误。

实时路径

<script src="https://sdk.amazonaws.com/js/aws-sdk-2.505.0.min.js"></script>

本地路径

 <script src="./src/assets/aws-sdk-2.505.0.min.js"></script> 

我在 TS 文件上声明了这一点

const AWS = (window as any).AWS;

AWS.config.credentials = {
"accessKeyId": "xxxxxxx",
"secretAccessKey": "xxxxxx",
"region": "xxxx"
};
AWS.config.region = "xxxxxx";
AWS.config.version = "xxxxx";
this.queueURL = "xxxxxxx";
}

我可以通过 NPM 安装来实现这一点,但这会增加项目的大小,这就是我想在项目中本地使用的原因

最佳答案

如果 bundle 的大小是您的主要问题,aws-sdk 提供了仅包含您需要的服务的选项。 aws-sdk README 中对此有一些解释。您可以在其中使用导入的 npm 包执行以下操作:

// option 1. import entire SDK
// this is big, indeed
import * as aws from 'aws-sdk';

// option 2a. import AWS object without services
// that's pretty basic
import * as aws from 'aws-sdk/global';

// option 2b. import individual service
// this might be just what you need, combined with option 2a.
import * as s3 from 'aws-sdk/clients/s3';

重要提示:我对导入做了一些改动,而不是 README 中的说明。仅仅是因为 TS 编译错误导致 aws-sdk 模块没有默认导出。

基于您的原始示例的完整示例将显着减小输出包的大小:

// only include the 'global' (core) and 's3' service
import * as aws from 'aws-sdk/global';
import * as s3 from 'aws-sdk/clients/s3';

export class App {
public attached() {
aws.config.credentials = {
"accessKeyId": "xxxxxxx",
"secretAccessKey": "xxxxxx"
};

aws.config.region = "xxxxxx";
aws.config.apiVersion = "xxxxx";
}
}

不是吹毛求疵,但您示例中的一些选项根本不起作用 - 因此这些选项已被删除。

不过,如果这还不够令人信服,您可以尝试将 CDN 恢复到 <head>index.ejs 的标签并在您的类(class)之上使用 var 全局声明它:

var AWS = require('aws-sdk');

...但我不会那样做,我个人更喜欢一个更大的包而不是一个额外的远程 http 调用。

关于javascript - 如何在我的 Aurelia 项目中本地使用 AWS SDK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57420544/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com