Tag: amazon s3

TypeError:不是缓冲区node.js crypto,aws-sdk

我试图创build一个S3上传到亚马逊S3的策略…但是当编码策略,我得到一个types错误:不是一个缓冲区。 我正在使用encryption版本:0.0.3和aws-sdk版本:2.0.0-rc.19 这是工作之前,所以我认为它可能与更新aws-sdk有关… … 这是代码。 该注释将显示错误发生的位置: createS3Policy = function(contentType, callback) { var date = new Date(); var s3Policy = { 'expiration': getExpiryTime(), 'conditions': [ ['starts-with', '$key', 'shimmy-assets/'], {'bucket': S3_BUCKET}, {'acl': 'public-read'}, ['starts-with', '$Content-Type', contentType], {'success_action_status' : '201'} ] }; // stringify and encode the policy var stringPolicy = JSON.stringify(s3Policy); console.log('string policy: ' + stringPolicy); var […]

如何cachingnode.js服务器上的AWS S3文件并根据请求提供服务?

对于我的网站,我将所有assets (字体/图像/ js等)部署到S3 bucket 。 index.html (单页面的Ember.js应用程序)部署在弹性beanstalk node.js服务器上。 节点app.js会向www.domain.com/*发送任何请求并提供本地存储的index.html 。 我希望能够削减为每个生产构build部署新应用程序到弹性beanstalk的过程,并简单地将所有资产和index.html部署到S3 bucket 。 这是我迄今为止: var AWS = require('aws-sdk'), fs = require('fs'); /* * AWS Security credentials */ AWS.config.loadFromPath('./config.json'); var port = process.env.PORT || 3000, http = require("http"); var static = require('node-static'); /* * Create a node-static server instance * to serve the './public' folder */ […]

如何在KeystoneJS上传S3文件

我有一个称为风格的项目有2个属性,其中一个具有原始的CSS文本,另一个具有S3File 。 Style.add({ … css: { type: Types.Code, language: 'css' }, cssFile: { type: Types.S3File, s3path: 'uploads/assets', }, … }); 我想用css文本的内容来更新S3File 。 function uploadCSStoAmazon(style) { // Store css code in temporal file (with a md5 name) var rndm = crypto.randomBytes(20).toString('hex'), file_path = '/tmp/css_temp_' + rndm + '.css'; fs.writeFile(file_path, style.css, function(err) { if(err) { return console.log(err); […]

如何将缓冲区保存到S3 Bucket中

我的要求是将图像的Buffer保存到S3存储桶中。 我正在使用gm节点模块将image转换为buffer 。 但是我的主要问题是我需要将缓冲区直接发送到S3存储区而不保存在任何本地文件中。 我目前的代码如下: var fs = require('fs'), gm = require('gm').subClass({ imageMagick: true }); gm(/*buffer value*/).resize(9000) .toBuffer('jpg', function (err, buffer){ fs.writeFile(filePath, buffer, function (err) { if (err) throw err; console.log('It\'s saved!'); }); }); 我的要求如下: var fs = require('fs'), gm = require('gm').subClass({ imageMagick: true }); gm(/*buffer value*/).resize(9000) .toBuffer('jpg', function (err, buffer){ //S3 Upload To be […]

你如何通过node.jsstream向S3上传并向用户显示进度?

目标是: 能够从浏览器上传文件 能够直接上传到S3 将上传进度转发给浏览器 我花了一段时间来解决这个问题(并没有完全find一个答案,所有3在StackOverflow呢),所以张贴我的答案,以防其他人有同样的问题。 我愿意提供更好的解决scheme(我的速度非常可怕)。

Stubbing S3在Node.js中上传

我将如何去在S3中上传Node.js中的S3上传文件? 对于洞察力,我使用摩卡进行testing,Sinon进行testing,但我愿意改变任何事情。 我有一个文件,导出执行上传的函数。 它看起来像这样: var AWS = require('aws-sdk'); var s3 = new AWS.S3({ params: { Bucket: process.env.S3_BUCKET }}); var params = { Key: key, Body: body }; s3.upload(params, function (error, data) { // Handle upload or error }); 如果我尝试存根AWS.S3或AWS.S3.prototype ,没有任何更改。 我认为这是因为我的testing需要aws-sdk自己,并有自己的每个函数的副本。 我的testing看起来像这样: describe('POST /files', function () { var url = baseURL + '/files'; it('uploads the […]

从Amazon S3存储中删除图像

我正尝试从Amazon S3 Storage中删除一个映像,但不会删除。 我正在使用以下代码: var s3 = AWS.S3(awsCredentials); s3.deleteObject({ Bucket: MY_BUCKET, Key: myKey },function (err,data){}) 但我想删除的图像仍然存在。 我甚至使用s3.deleteObjects函数,它返回删除的对象名称,但是当我检查存储时,图像仍然存在。

无法使用node.js将Blobfile upload到S3

我用connect-multiparty中间,我有下面的代码: console.log(req.files) var data = { Key: req.body.filename, Body: req.files, ContentType: 'image/jpeg' }; s3Bucket.putObject(data,function(err,result){ console.log(err); }); 而我在terminal下面得到的结果是: { photo: { fieldName: 'photo', originalFilename: 'blob', path: '/var/folders/n1/fr69rt5j01sfwjhsh3jx3gh00000gn/T/Tw4pwoPQ5D7zCGxrk3U1ywKp', headers: { 'content-disposition': 'form-data; name="photo"; filename="blob"', 'content-type': 'image/jpeg' }, size: 50138, name: 'blob', type: 'image/jpeg' } } { [InvalidParameterType: Expected params.Body to be a string, Buffer, Stream, Blob, or […]

直接到s3 /客户端file upload。 用这种方法是否存在将未使用的文件存储在s3存储桶中的问题?

我正在查看由heroku(对于NodeJs应用程序)build议通过服务器签署s3文件的这个教程,然后直接从客户端处理上传: https://devcenter.heroku.com/articles/s3-upload-node 我想知道很多未使用的文件存储在s3存储桶中的可能性。 在heroku教程中,他们运行一个用户编辑场景。 他们指出: 当用户select要上传的图像时,上传到S3的处理将自动与本文前面介绍的过程asynchronous处理。 一旦上传完成并成功,图像预览会随着所选图像而更新。 然后用户点击“提交”button,该button将上传图像的用户名,名称和URL发布到要检查和/或存储的节点应用程序。 如果之前没有用户上传图片,则会发布默认的头像图片url。 那么,如果用户select图像,然后点击另一个页面而没有完成并提交用户configuration文件信息呢? 这只是一个浪费的文件存储在你的s3桶? 我在我的平均应用程序中使用类似的方法,在提交: 我上传文件到S3。 然后,承诺,一旦上传完成,我提交用户的个人资料信息/岗位s3的url到服务器。 我有一个类似的担心,如果用户离开之前承诺调用或有连接问题 – 是否有存储未使用的文件的问题? 这是处理这个问题的典型方式吗?这只是风险的一部分?

使用x-amz-tagging请求标头指定标签

我有一个节点程序file upload到aws s3,我需要指定与请求标头的x-amz标签。 我尝试了一些东西,但不起作用! function buildRequestHeader() { return { 'Content-Length': fileBuffer.size, 'Content-Type': mimeType, 'x-amz-acl': 'public-read', 'x-amz-tagging' :{"tag1":'abcd',"tag2":'efgh'} } } 我已经看到了一些文件, PUT object-key?tagging HTTP/1.1 Host: examplebucket.s3.amazonaws.com Content-Length: length Content-MD5: pUNXr/BjKK5G2UKExample== x-amz-date: 20160923T001956Z Authorization: authorization string <Tagging> <TagSet> <Tag> <Key>tag1</Key> <Value>val1</Value> </Tag> <Tag> <Key>tag2</Key> <Value>val2</Value> </Tag> </TagSet> </Tagging> 你能解释一下它是如何工作的吗?