Tag: amazon s3

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": […]

如何使用getSignedUrl()将Node.js fluent-ffmpeg屏幕截图的目标文件夹设置为您的AWS S3存储桶?

我正在编写一个程序,在我的Amazon S3存储桶中为一组.mp4video生成.png缩略图(在同一个文件夹中具有相同的名称)。 在这个例子中,我将为bucket中的/folder/file.mp4创build一个/folder/file.png。 我设法使用s3对象和getSignedUrl来设置源URL,如下所示: var srcurl = s3.getSignedUrl('getObject', { Bucket: 'bucket-name', Key: '/folder/file.mp4' }); 和 new ffmpeg({ source: srcurl }) .screenshots({ count: 1, filename: '%f'.substr(0, '%f'.indexOf('.')) + '.png', /* To shorten the long string that's returned */ folder: desturl, size: MAX_WIDTH + 'x' + MAX_HEIGHT }); 目标url必须与来源相同的文件夹。 所以我把它设置如下: var desturl = s3.getSignedUrl('putObject', { Bucket: 'bucket-name', […]

AWS S3使用docker容器parsingURI错误

在本地环境中,我使用express / node后端和AWS S3服务器(使用scality / S3 )开发文件上载function。 两项服务都在自己的容器中docker化,通信正常。 我的问题是,S3服务器似乎不理解上传请求。 这里是我尝试使用的代码: const s3 = new S3({ accessKeyId: 'accessKey1', secretAccessKey: 'verySecretKey1', endpoint: 's3server:8000', sslEnabled: false, s3ForcePathStyle: true, }); function uploadFile(file) { const params = { Body: file, Bucket: 'testbucket', Key: 'testkey', ACL: 'public-read', }; s3.upload(params, (err, data) => { if (err) console.log(err, err.stack); // an error occurred […]

使用nodejs knox删除s3桶中的所有文件?

我正在使用knox npm模块将file upload到S3上的存储桶。 它工作很好。 我不知道如何做的是如何在一次调用中删除一个桶中的所有文件,而不是在同一时间删除一个文件? 任何想法将有助于…

Amazon S3 EPIPE错误

更新:在向该用户添加完整的访问策略权限之后, 从命令行获取它。 现在,当我用Node来做时,没有错误,但是我看不到s3文件pipe理器中的文件。 我一直使用亚马逊的S3服务获得EPIPE错误。 我有点卡住,不知道如何进行。 我正在使用Node.js和Knox模块 。 这是我的代码: var client = knox.createClient({ key: amazonAccessKeyId, secret: amazonSecretAccessKey, bucket: amazonBucketName }); function moveFiles() { moveUploadedFile(req.files['aps-file'].path,'/aps-products.csv', this.parallel()); moveUploadedFile(req.files['perry-craft-roof-file'].path,'/perry-craft-roof-products.csv', this.parallel()); res.end('successful!'); } function moveUploadedFile(srcPath, dstPath, callback) { client.putFile(srcPath, dstPath, { 'x-amz-acl': 'public' }, function (err) { if (err) { callback(new Error("Error uploading file for " + dstPath + ": […]

node.js将imagemagick的输出上传到AWS S3

我有一个问题操纵imagemagick图像,然后上传到S3。 由此产生的对象有不同(更大)的大小,似乎是腐败的。 如果我做了一个中间步骤,并将输出保存到本地tmp文件,并将其读回,然后上传结果一切似乎很好。 这是不起作用的代码。 im.resize({ srcData: imageObject.Body, width: variant.width, height: variant.height, customArgs: ['-auto-orient'] }, function(err, stdout, stderr) { if (err) { // This resize completed successfully log.err('Failed calling imageMagick, bail out', err); callback(err); return; } var fileName = cfg.aws.s3.uploadDir + photo.imageId + '/' + variant.width + 'x' + variant.height + '.jpg'; log.info('Storing image at S3 […]

在KeystoneJS中使用S3File进行image processing

我想知道是否可能,以及在KeystoneJS中使用S3File作为图像字段的工作量。 我的testing表明,虽然您确实可以将图像上传到S3File,但pipe理界面将其视为任意文件。 我最缺less的是像Types.CloudinaryImage提供的预览function。 自动生成的pipe理界面很容易扩展,而不是丑陋的黑客? 或者是因为它已经为你做了很多事情这个简单的事实而被保留下来?

从Amazon S3直接将文件stream式传输到客户端(Node.js)

我正在使用sails.js,并试图将文件从Amazon S3服务器直接传输到客户端。 要连接到S3,我使用s3模块: https : client.downloadBuffer(s3Params)此模块提供像client.downloadFile(params)和client.downloadBuffer(s3Params) 。 我目前的代码如下所示: var view = client.downloadBuffer(params); view.on('error', function(err) { cb({success: 0, message: 'Could not open file.'}, null); }); view.on('end', function(buffer) { cb(null, buffer); }); 我用一个控制器捕获这个缓冲区: User.showImage( params , function (err, buffer){ // this is where I can get the buffer }); 是否有可能将此数据作为图像文件进行stream式传输(当然,使用buffer.pipe(res)不起作用)。 但是有没有类似于完全避免将文件保存到服务器磁盘? 另一个选项client.downloadFile(params)需要一个本地path(即在我们的例子中是一个服务器path)

上传到S3返回禁止

我有一个窗体上传文件到我的桶在aws S3,这是表单 <form action="/user/fileUpload" enctype="multipart/form-data" class="ui form" method="post"> <div class="field"> <select class="ui dropdown"> <option value="">Print Agency</option> <option value="fastprint">Fast Print</option> <option value="printpress">Print Press</option> </select> </div> <div class="field"> <input type="file" name="uploadFile" /> </div> <div class="field"> <input type="submit" value="Upload" class="ui blue submit button" /> </div> </form> 这是按下“提交”button时将激活的动作 fileUpload: function(req, res) { req.file('uploadFile').upload({ adapter: require('skipper-s3'), key: 'THE-KEY', secret: 'THE-SECRET', […]

节点js s3fs图像上传到aws amazon s3服务器并设置ContentType

以下是我使用s3fs库将图像上传到Amazon S3的节点JavaScript代码。 图像上传正确,但是当我尝试在浏览器中查看该图像时,它提供了下面提到的错误。 我检查了Content-Type,默认情况下它被保存为octet-stream 。 如果我手动将其设置为image/jpeg那么该图像可以在浏览器中查看。 任何人都可以告诉我只能在上传完成后才能设置Content-Type吗? 我试图设置Content-Type,但它不适用于S3fs图像上传。 错误代码:- <Error> <Code>NoSuchKey</Code> <Message>The specified key does not exist.</Message> </Error> 我的实际代码: – var AWS= require('aws-sdk'); var fs = require('fs'); var S3FS = require('s3fs'); var s3fsImpl = new S3FS('bbqmobileimages/images/banners',{ accessKeyId:'A********A', secretAccessKey:'****************' }); var multiparty = require('connect-multiparty'), multipartyMiddleware = multiparty(); router.use(multipartyMiddleware); router.post('/api/v1/backoffice/upload/image',function(req,res){ console.log(JSON.stringify(req.files)); var file = req.files; console.log("file",JSON.stringify(file)) console.log("original […]