Tag: aws sdk

为什么当指定的键不存在时,S3.deleteObject不会失败?

使用适用于Node的AWS开发工具包时 ,为什么在尝试删除不存在的对象时(例如S3键错误),不会出现错误? 如果我指定一个不存在的桶,则会产生一个错误。 如果考虑以下节点程序,则Key参数列出存储桶中不存在的键,但callback的error参数为null : var aws = require('aws-sdk') function getSetting(name) { var value = process.env[name] if (value == null) { throw new Error('You must set the environment variable ' + name) } return value } var s3Client = new aws.S3({ accessKeyId: getSetting('AWSACCESSKEYID'), secretAccessKey: getSetting('AWSSECRETACCESSKEY'), region: getSetting('AWSREGION'), params: { Bucket: getSetting('S3BUCKET'), }, }) picturePath = […]

S3.putObject – callback永远不会被调用

我试图上传一个图像到S3,但是当我打电话给s3.putObject(params,callback),我的callback永远不会被调用,并没有错误logging。 以下是相关的代码: var params = { Key: key, Body: imageData, ContentLength: imageData.byteCount, ContentType: contentType, }; this.s3.putObject(params, function(err, data) { console.log('here'); if (err) { callback(err); return; } callback(null, key); }); 其中params是{ Key: 'e2f99bf3a321282cc7dfaef69fe8ca62.jpg', Body: {imageData parsed from request using node-multiparty}, ContentLength: 27802, ContentType: 'image/jpeg', } 我已经validation了这个.s3是有效的,type.sofput.sys是按照预期的函数。

使用节点js中的AWS sdk将整个目录树上传到S3

我目前上传单个对象到S3使用像这样: var options = { Bucket: bucket, Key: s3Path, Body: body, ACL: s3FilePermissions }; S3.putObject(options, function (err, data) { //console.log(data); }); 但是,当我有一个大的资源文件夹,例如,我使用AWS CLI工具。 我想知道,是否有一种本地的方式来做同样的事情与aws sdk(上传整个文件夹到S3)?

节点aws-sdk s3file upload大小

当为nods.js使用aws-sdk npm插件时,可以使用以下代码(至AWS s3)在50kb上传pdf: var params = { Bucket: BUCKET, Key: pdf_key, Body: file, ContentType: 'application/pdf' }; var s3 = new AWS.S3(); s3.putObject(params, function(error, data) { console.log(data); console.log(error); if (error) { console.log(error); callback(error, null); } else { callback(null, pdf_key); } }); 但是,当上传一个11MB的pdf时,即使指定了ContentLength ,上传也会一直持续下去,即使超时2分钟。 问题是我该如何让aws s3接受大型pdf文件? UPDATE 对于这个问题,我还没有find任何文件或反驳。 更新2 我会接受显示这个或另一个可以做到这一点的框架的答案。 我需要这个框架才能够允许对对象进行authentication读取。 更新3我现在工作,但我还没有find一个理由,它不应该工作。 提前致谢!

如何在dynamodb中插入json

这是我的代码。 我想将asset_data json插入到asset_data列中。 我正在使用aws sdk。 它说aws sdk现在支持json。 http://aws.amazon.com/releasenotes/SDK/JavaScript/1691866671551861 var asset_data = { "name": "name" + i, "contentUrl": "http://www.hdwallpapersimages.com/nature-beauty-desktop-images/94892/", "size": 300, "headline": "headline", "description": "assetUrl reference for the creator", "encodingFormat": 'jpeg' }; var params = { TableName: 'xyz', Item: { // a map of attribute name to AttributeValue "asset_id": {S: "asset" + i}, "hit_id": {S: "0"}, […]

AWS DynamoDB问题:用户无权在资源上执行:dynamodb:PutItem

我试图从部署在AWS ElasticBeanStalk上的Node应用程序访问DynamoDB。 我收到一个错误“用户无权执行:dynamodb:PutItem资源” 它在本地完美地工作,只有当我部署到AWS停止执行。 任何人都知道修复? 提前致谢!

InvalidParameterValueException:为函数定义的angular色不能由Lambda承担

我正在使用适用于JavaScript的AWS开发工具包,并且在尝试创buildLambda函数时返回以下错误: InvalidParameterValueException:为函数定义的angular色不能由Lambda承担。 我仔细检查了我的angular色,这是完全有效的。 但是,我仍然无法创buildLambda函数。 我的angular色信任关系是: { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "lambda.amazonaws.com" ] }, "Action": [ "sts:AssumeRole" ] } ] }

DynamoDB:SET list_append无法使用aws sdk

我需要添加一个string到一个使用相应的键在dynamodb表中设置的string。 这是我用来做updateItem的更新expression式: var params = { "TableName" : tableName, "Key": { "ID": { S: "20000" } }, "UpdateExpression" : "SET #attrName = list_append(#attrName, :attrValue)", "ExpressionAttributeNames" : { "#attrName" : "entries" }, "ExpressionAttributeValues" : { ":attrValue" : {"SS":["000989"]} } }; 当我使用aws cli执行updateItem()时,这是有效的。 但是,当在nodejs中使用aws-sdk时,出现以下错误: Invalid UpdateExpression: Incorrect operand type for operator or function; operator or function: list_append, […]

从nodejs请求到s3的stream响应

你如何使用请求下载一个文件的内容,并直接使用aws-sdk作为节点将其传输到s3? 下面的代码给我的Object #<Request> has no method 'read' ,这使得它看起来像请求不会返回一个可读的stream… var req = require('request'); var s3 = new AWS.S3({params: {Bucket: myBucket, Key: s3Key}}); var imageStream = req.get(url) .on('response', function (response) { if (200 == response.statusCode) { //imageStream should be read()able by now right? s3.upload({Body: imageStream, ACL: "public-read", CacheControl: 5184000}, function (err, data) { //2 months console.log(err,data); }); […]

使用KeyConditionExpression进行dynamodb查询的问题

尝试按照使用nodejs sdk的dynamodb api 文档来使用KeyConditionExpression。 KeyConditionExpression不受Nodejs SDK的支持。 这是我做的 用哈希和范围创build一个表。 Table : TABLE1 Hash Attribute Name : Provider ( String) Range Attribute Key : ScheduledEndTime ( Number ) // In Milli Seconds 这里是有效载荷来触发发电机数据库查询: { TableName: 'TABLE1', ConsistentRead: true, Select: "ALL_ATTRIBUTES", KeyConditionExpression: 'Provider = :v_provider AND ScheduledEndTime > :v_scheduledEndTime', ExpressionAttributeValues: { ":v_provider": { S: "amazon" }, ":v_scheduledEndTime": { […]