Tag: amazon s3

使用Mulder上传和redirect页面

我有一个问题,redirect的页面成功的file upload后,使用multer 。 随着file upload,我也保存一些文本到数据库中。 这是我的代码。 题 : 当文件和内容保存在数据库中时,如何将页面redirect到新的URL? 我目前正在使用res.redirect('product/item'); 但没有任何反应。 我也尝试使用res.render ,但页面没有redirect。 Multer方法将file upload到Amazon S3 var upload = multer({ storage: multerS3({ s3: s3, bucket: 'nameofthebucket', metadata: function (req, file, cb) { var ext = file.originalname.split('.').pop(); cb(null, {fieldName: 'file.fieldname' + '.' + ext}); }, filename: function(req,file,cb){ var ext = file.originalname.split('.').pop(); cb(null, Date.now() + '.' + […]

AWS Step / Lambda – 在运行之间存储variables

在我第一次涉足云计算时,我能够遵循Mark West关于如何使用AWS Rekognition处理来自安全摄像机的图像的指示 ,这些图像被转储到S3存储桶中,并在检测到人员时提供通知。 他的代码是为Raspberry Pi相机设置的,但是我可以通过将触发的图像通过FTP传输到Synology NAS,并使用CloudSync将其镜像到S3存储桶,从而将其适配到我的IP摄像机。 按照下图的步骤函数调用Lambda函数,并在15秒内收到一封电子邮件,附带检测到的标签列表和附加的图像。 问题是,只要条件被触发,照相机就会每秒上传一张图像,如果在照相机前面有很多活动,我可以快速地处理几百封电子邮件。 我想在make-alert-decision和nodemailer-send-notification之间插入一个函数来检查是否在最后一分钟内发送了电子邮件通知,如果没有,请立即转到nodemailer-send-notification,如果因此,将标签列表和path存储到数组中,然后在60秒内发送一封包含所有附件的电子邮件。 我知道我必须从外部存储数据,并且遇到这篇文章解释了不同的caching数据方法的好处,我还认为我可以检查上传到S3的文件的时间戳,比较两个最近上传文件来决定是否继续或batch file以备后用。 作为AWS的新手,我正在寻找从复杂性和成本angular度来看哪种方法最有意义的build议。 我可以忍受文章中讨论的任何方法的滞后,只是不知道如何继续,因为我从来没有使用甚至听说过任何服务。 谢谢!

用于提供私人文件的AWS S3实施

使用案例:我们正在开发一个Web应用程序,客户要求我们使用AWS S3来存储图像。 在应用程序中,每个人都有自己的帐户,并上传自己的图片,一些上传的图片将公开。 根据我的理解,我们可以通过使用预先链接的URL来实现这一点,上传图像。 但是我面临的问题是如何限制对其他用户的访问。

在上传到S3的过程中,ZIP文件被破坏

我使用node.js和knox的putFile将一个zipfile upload到S3。 原来的压缩文件打开,从S3的压缩下载是腐败的。 以下是我正在使用的相关代码: var client = knox.createClient({ key: 'MY KEY HERE', secret: 'MY SECRET HERE', bucket: 'MY BUCKET HERE' }); var filename = 'example.zip'; var req = client.putFile(filename, filename, { 'x-amz-acl': 'public-read' }, function(err, res){ if (res.statusCode == 200) { console.log('moved '+filename+' to s3'); } else { console.log('failed to move to s3'); } }); […]

如何使用Knox将文件从NodeJSstream式传输到Amazon S3?

在NodeJS中,我是非常新的stream – 对于他们基本上毫无头绪 – 我试图让Amazon S3的KnoxJS客户端通过HTTP GETstream式传输文件。 Knox github页面上的示例代码显示了这一点: http.get('http://google.com/doodle.png', function(res){ var headers = { 'Content-Length': res.headers['content-length'] , 'Content-Type': res.headers['content-type'] }; client.putStream(res, '/doodle.png', headers, function(err, res){ // check `err`, then do `res.pipe(..)` or `res.resume()` or whatever. }); }); 但是,这是非常明显的不完整的……除了打开http.get和putStream for S3之外, 那么我从哪里去呢? 有人可以帮我完成这段代码,这样我就可以通过HTTP GET将文件stream式传输到S3上的存储桶中了吗?

从Amazon S3存储桶中检索图像

我将图像存储在S3存储桶中,但我无法显示图像的链接。 这是我得到的错误: <Error> <Code>AccessDenied</Code> <Message>Access Denied</Message> <RequestId>8CAF92C03A75648C</RequestId> <HostId> ocfqcRiXsJoV0mBom0z+nmV3seEMRpdBMvDddy1sgQrIOq19/UvK6BmurlM8v20zGIvh2ITHjYc= </HostId> </Error> 我需要在不同的域上显示图像,但是我可以在为每个域创buildCORS规则时处理这些图像。 <CORSConfiguration> <CORSRule> <AllowedOrigin>*</AllowedOrigin> <AllowedMethod>GET</AllowedMethod> <MaxAgeSeconds>3000</MaxAgeSeconds> <AllowedHeader>*</AllowedHeader> </CORSRule> </CORSConfiguration> 我怎样才能打开这个桶,使图像公开可以显示?

如何在NodeJS上使用S3 SSE C(服务器端encryption与客户端提供的密钥)

如何在NodeJS上使用SSE Cencryption? 我试了下面,但得到一个错误 s3.putObject({ Bucket: 'mybucket', Body: 'Hello S3', ACL: 'private', Key: 'test.txt', SSECustomerAlgorithm: 'AES256', SSECustomerKey: '0699Exxxxxx' }, (err) => { if (err) return console.error(err.stack) s3.getSignedUrl('getObject', { Key: 'test.txt', Expires: 60, SSECustomerAlgorithm: 'AES256', SSECustomerKey: '0699Exxxxxx' }, (err, data) => { if (err) return console.error(err.stack) console.log(data) }) }) 问题是我得到“密钥对于指定algorithm无效” sails> (node:4802) DeprecationWarning: Calling an asynchronous function […]

如何启用对AWS STS AssumeRole的访问

在调用STS的assume role方法时出现错误。 它表示用户没有被授权在资源xxx上执行sts:AsumeRole 。 我做了以下几点: 我创build了一个angular色来访问S3存储桶。 我在策略模拟器上运行testing,工作正常 我创build了一个新组,并在其中创build了一个新策略,使所有资源上的所有sts操作成为可能。 我使用策略模拟器运行了一个testing,以扮演angular色,指向在第一步创build的angular色的ARN; 它工作正常 我创build了一个新用户,并将其放在第3步创build的组中 随着新用户的凭据,我尝试使用sts asumeangular色获得新的凭据,但抛出一个错误,说我的用户没有被授权执行sts:AssumeRole 我究竟做错了什么? 政策在集团 { "Version": "2012-10-17", "Statement": [ { "Sid": "some-large-id", "Effect": "Allow", "Action": [ "sts:*" ], "Resource": [ "*" ] } ] } 政策的angular色 { "Version": "2012-10-17", "Statement": [ { "Sid": "another-large-id", "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::my-bucket-name/*" ] […]

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

使用NodeJS将多个file upload到AWS S3

我正尝试使用NodeJS将我的目录中的所有file upload到S3存储桶。 我能够一次上传一个文件,如果我明确地给文件path+文字string的Key:字段。 以下是我正在使用的脚本: var AWS = require('aws-sdk'), fs = require('fs'); // For dev purposes only AWS.config.update({ accessKeyId: '…', secretAccessKey: '…' }); // reg ex to match var re = /\.txt$/; // ensure that this file is in the directory of the files you want to run the cronjob on // ensure that this file […]