与网络工作者一起使用AWS SDK
Using AWS SDK with web workers
此处为离子/cordova/angular上的总noob。上周开始,所以我在这里很挣扎。我正在尝试从一个应用程序上传文件(在iOS上),该应用程序是使用Ionic和Cordova创建的。这些文件是图像,因此非常大。我想在后台工作线程中上传这些图像。随之而来的是对网络工作者的需求。
这些图片必须上传到AmazonS3。我的worker javascript文件中有以下代码。
onmessage = function(e) {
importScripts("aws-sdk.min.js");
console.log("Doing work");
self.AWS.config.region = 'us-east-1'; //Error here. config is not defined :(
self.AWS.config.update({accessKeyId: 'XXX', secretAccessKey: 'ABCD'});
//More AWS stuff
postMessage("DONE");
}
我的主javascript文件很好,因为我在非AWS配置中试用了它(普通的旧console.log("stuff here"))
,它运行得很好。我一尝试使用AWS SDK做任何事情,它就开始失败。此外,aws-sdk.min.js
正在正确导入(至少Chrome在控制台上没有显示错误)。
啊哈,这似乎解决了我的问题http://www.jefferydurand.com/amazon/web/services/worker/2015/05/08/amazon-javascript-sdk-web-worker.html
有趣的是,它不适用于aws-sdk-2.2.3,但适用于示例中显示的那个。
来自网站:
// this was the trick I needed to get the aws sdk to load.
// web workers don't have a 'window' object but the library assumes
// there is a window object
window = {};
importScripts('https://sdk.amazonaws.com/js/aws-sdk-2.1.27.min.js');
// initialize our dynamodb table and get it ready to accept values
window.AWS.config.update({accessKeyId: 'XXXXXXXXXX', secretAccessKey: 'XXXXXXXJJJJXXXXX'});
window.AWS.config.region = 'us-east-1';
var table = new window.AWS.DynamoDB({params: {TableName: 'song_player_metrics'}});
我以前在网页上做过这件事。话虽如此,我听说向公众公开你的秘密钥匙是一种非常糟糕的做法。我认为大多数人都有一个服务器或lambda实例来对上传进行签名。然而,它可以用于原型设计。
不管怎样,这个代码对我有效。
var accessKeyId = "public key here"
var secretAccessKey = "secret key here" // secret key. This should be hidden. Maybe on a server or lambda instance.
var bucketName = "my-new-bucket"
var region = "us-west-2"
//make bucket
AWS.config.update({accessKeyId: accessKeyId, secretAccessKey: secretAccessKey})
AWS.config.region = region
var bucket = new AWS.S3({
params: {
Bucket: bucketName
}
})
// upload something into bucket
// note: you need to define a callbackFunction
bucket.putObject({
Key: "test.txt,
Body: "hello world. this is just a test."
}, callbackFunction)
此示例上载了一个文本文件,但您也可以为图像上载Blob。
相关文章:
- 使用NextToken使用javascript aws-sdk解析下一个结果
- Installing JavaScript AWS SDK for NativeScript
- 只需要浏览器中aws-sdk中的SQS
- Cognito DynamoDB aws sdk in mobile app
- 如何在浏览器中使用AWS SDK模拟IAM用户
- 如何安全地使用aws-sdk-javascript
- 使用AWS SDK for JavaScript访问AWS S3
- JavaScript aws-sdk S3 deleteObject(s) 成功,但实际上并没有删除任何内容
- 无法在Chrome应用程序中加载AWS SDK
- 与网络工作者一起使用AWS SDK
- 使用nodejs-AWS-sdk将生成的pdf上传到AWS S3
- 使用AWS SDK for Node.js将项目放在DynamoDB表上
- 是否有可能确定我的应用程序的aws实例使用js/node aws-sdk
- 如何为TypeScript使用AWS sdk定义?
- 如何在使用Amazon S3 GetObject -Aws sdk 2.2.6时指定本地目标路径
- 如何通过aws-sdk (javascript或node)获取s3桶大小
- 获取"无法解析模块'aws-sdk','child_process','
- 使用响应式编程RXJS与AWS SDK的javascript
- AWS SDK JavaScript:如何显示AWS. s3 . putobject的上传进度
- AWS sdk for node.js