Tag: aws sdk nodejs

如何使用nodejs将图像上传到s3时设置过期date

我想上传一个图片/video,并在nodejs sdk中设置到期date。 任何一个可以让我知道如何设置到期date,而上传图像到S3?

Sinon存根并testingAWS-SDK的承诺

//正在testing的类 var AWS = require('aws-sdk'); var s3Export = function() { var s3Client = new AWS.S3(); this.getObject => (params) => { return s3Client.getObject(params).promise(); } }; module.exports.S3 = new s3Export(); //testing类 describe('s3-wrapper-tests', function() { var app, aws, s3, getObjectData = {Bucket: 'test-bucket', Key: 'test-file'}, deleteObjectData, deleteObjectsDatas, putObject; before(() => { s3 = sinon.stub({ getObject: function(params) { getObjectData […]

从AWS Lambda Node.JSstream式传输到S3

我的目标是创build一个大的gzip文本文件,并将其放入S3。 文件内容由我从另一个源代码循环读取的块组成。 由于这个文件的大小,我不能保存所有的数据在内存中,所以我需要以某种方式直接stream到S3和ZIP在同一时间。 我知道如何使用Node.JS中的常规fs执行这个技巧,但是我很困惑是否可以使用AWS Lambda中的S3来完成相同的技巧? 我知道s3.putObject 可以使用 streamObject ,但是在我看来,当我执行putObject操作时,这个stream应该已经完成​​,什么会导致超出允许的内存。

AWS S3 NodeJS禁止或连接rest

我的本地机器上有一个NodeJS应用程序。 我正尝试使用Amazon S3服务进行设置,但不幸的是,它不起作用。 我能够获得签名的URL,但是当上传文件时,AWS返回Forbidden 403(几次它断开连接,但在从CORS中删除超时选项后停止) 我到目前为止所做的: 创build新的用户休闲政策: { "Statement": [ { "Action": "s3:*", "Effect": "Allow", "Resource": [ "arn:aws:s3:::my-bucket", "arn:aws:s3:::my-bucket/*" ] } ] } 为此用户创build了新的访问密钥 更新了桶的CORS <?xml version="1.0" encoding="UTF-8"?> <CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <CORSRule> <AllowedOrigin>*</AllowedOrigin> <AllowedMethod>GET</AllowedMethod> <AllowedMethod>PUT</AllowedMethod> <AllowedMethod>POST</AllowedMethod> <AllowedHeader>*</AllowedHeader> </CORSRule> </CORSConfiguration> 更新了桶策略 { "Version": "2012-10-17", "Statement": [ { "Sid": "111", "Effect": "Allow", "Principal": { "AWS": "my-user-id-number" }, "Action": […]

如何在s3中使用节点js中的aws-sdk存储Excel文件?

var xls = json2xls(data); var bufferdata = new Buffer(xls).toString('base64'); console.log("inside upload s3 function……..", data); //var buf = new Buffer(data, 'base64'); var uploaddata = { Key: "exception.xls", Body: bufferdata, ContentEncoding: 'base64', ContentType: 'application/vnd.ms-excel' }; 我可以通过s3保存和检索文件。 但格式不匹配即将到来。 请帮助我如何解决这个问题。

无法通过lambda从nodejs代码访问dynamodb

我一直试图从lambdatesting这个,但无法继续。 var Alexa = require("alexa-sdk"); var dynamoDBConfiguration = { "accessKeyId": "useraccess", "secretAccessKey": "usersecretkey", "region": "us-east-1" }; var AWS = require("aws-sdk"); AWS.config.update(dynamoDBConfiguration); var promisify = require("es6-promisify"); var dynClient = new AWS.DynamoDB.DocumentClient({"region":"us-east- 1"}); //convert callback style functions to promises const dbGet = promisify(dynClient.get,dynClient); const dbPut = promisify(dynClient.put,dynClient); const dbDelete = promisify(dynClient.delete,dynClient); var startStateHandlers = (GAME_STATES.STARt, { "StartGame": […]

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; ^ […]