Tag: aws sdk

s3stream与etags(节点)

我们使用aws-sdk中的createReadStream()从S3节点中传输内容。 我们想添加etag支持。 如果我们从客户端添加'If-None-Match'头部,s3会抛出NotModified作为我似乎无法处理的错误。 retrieveFile = function(req, res) { var s3 = new AWS.S3(); var params = { Bucket: bucket, key: key }; if (req.get('If-None-Match')) { params.IfNoneMatch = req.get('If-None-Match'); } return s3.getObject(params).on('httpHeaders', function(statusCode, headers) { if (headers.etag) { res.set('etag', headers.etag); } if (headers['content-length']) { return res.set('content-length', headers['content-length']); } }).createReadStream().pipe(res); }; 我试着在stream上使用从getObject返回的请求上的callback来监听事件。 我可以通过这种方式获取错误消息,但是aws-sdk中的其他内容似乎正在杀死我的进程。 /Projects/my-app/node_modules/aws-sdk/lib/request.js:31 throw err; ^ […]

如何更改AWS节点客户端用户代理?

我正在使用节点aws-sdk软件包,我需要在S3请求中发送一个自定义的用户代理来确定控制台日志中的进程。 我已经看到了在Java SDK中执行此操作的方法,但在节点包中看不到任何类似的方法。 有什么办法可以轻松地做到这一点?

授权用户的S3存取权限

S3桶我想要保存的对象,如图像或video,并希望它被保护,并只能由授权用户访问我应该做什么。 一种方法是让具有特定时间的令牌的URL在一段时间后过期。 还有其他的方式来做到这一点。

如何从Java脚本为DynamoDB中的预置读取容量启用Auto Scaling

我正在使用AWS SDK for nodejs并从代码创build一个dynamodb表。 这一切工作正常,但我需要自动缩放来启用预置的读取和写入容量。 这是我正在尝试的代码 var params = { TableName : "MyTable", KeySchema: [ { AttributeName: "Name", KeyType: "HASH"}, //Partition key { AttributeName: "time", KeyType: "RANGE" } //Sort key ], AttributeDefinitions: [ { AttributeName: "Name", AttributeType: "S" }, { AttributeName: "time", AttributeType: "N" } ], ProvisionedThroughput: { ReadCapacityUnits: 5, WriteCapacityUnits: 5 } ] }; […]

在使用Node.js创buildEC2实例时关联弹性IP

有没有一种方法可以在Lambda函数中指定一个existing Elastic IP来创build一个Windows Server的实例? 我正在查看文档http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#runInstances-property,但我没有看到任何提及弹性IP分配。

通过蓝鸟提升aws-sdk

伙计们,我可以给SES打一个简单的电话: var Promise = require("bluebird"); var AWS = require('aws-sdk'); var SES = new AWS.SES(); SES.listVerifiedEmailAddresses(function (err, emails) { console.log(err,emails); }); 但是,当我尝试使用bluebird ,我得到以下内容: var Promise = require("bluebird"); var AWS = require('aws-sdk'); var SES = new AWS.SES(); var ses = Promise.promisifyAll(Object.getPrototypeOf(SES)); ses.listVerifiedEmailAddressesAsync().then(function (err,emails) { console.log('p',err,emails); }); 错误: Unhandled rejection TypeError: Cannot read property 'params' of undefined 那么,如何通过蓝鸟认可aws-sdk呢? […]

DynamoDB createTable如果不存在

您需要在DynamoDB上创build一个表。 问题是,如果它存在createTable响应是一个错误。 我如何避免这一点。 因为我发生错误时会发出通知,但在这种情况下,我不想。 我不想比较错误代码,因为ResourceInUseException太模糊了。 另外,我不认为先发送一个描述表请求是一个真正的解决scheme。 有没有办法createIfNotExists ?

AWS Transfer Acceleration使用JavaScript SDK的预签名URL

简单地说,是否可以使用传输加速(TA)和使用AWS-SDK for JavaScript生成的预签名URL? 打开特定S3存储区的TA会给出格式为: {bucket}.s3-accelerate.amazonaws.com的URL。 但是,当为请求指定参数时,唯一有效的选项似乎是{Bucket: 'bucket', Key: 'key', Body: 'body', Expires: 60} ,似乎并不允许我说我想用TA。 生成的URL采用通常的格式{bucket}.s3-{region}.amazonaws.com ,这对TA来说是错误的。 该文档似乎没有提供关于预先签名的URL的很多信息。

aws s3 putObject vs sync

我需要上传一个大文件到aws s3桶。 在每10分钟我的代码从源目录中删除旧文件,并生成一个新的文件。 文件大小约500 MB。 现在我使用s3.putObject()方法创build后上传每个文件。 我也听说过aws s3同步。 它与aws-cli一起来。 它用于上传文件到S3桶。 我用sws上传node.js的aws-sdk。 aws-sdk for node.js不包含s3-sync方法。 是s3-sync比s3.putObject()方法好吗? 我需要更快的上传。

AWS S3 JavaScript SDK getSignedUrl仅返回基本path

我有一些非常简单的代码来生成一个S3的URL。 我从SDK获取的URL只有S3的基本path。 它不包含任何其他内容。 为什么发生这种情况? var AWS = require('aws-sdk'); var s3 = new AWS.S3(); console.log(s3.getSignedUrl('getObject', { Bucket: 'test', Key: 'test' })); // Returns "https://s3.amazonaws.com/" Node.js v0.12.0,AWS SDK 2.1.15或2.1.17,Windows 7 64位,