Articles of 亚马逊 s3

允许用户将内容上传到s3

我有一个在BUCKET_REGION区域名为BUCKET的S3存储桶。 我试图让我的网站和移动应用程序的用户上传图像文件到这些桶,只要他们满足一定的限制基于Content-Type和Content-Length (即,我想只允许jpegs小于3mbs是上传)。 一旦上传,文件应公开访问。 基于对AWS文档进行的相当广泛的挖掘,我假定在我的前端应用程序中该过程应该看起来像这样: const a = await axios.post('my-api.com/get_s3_id'); const b = await axios.put(`https://{BUCKET}.amazonaws.com/{a.id}`, { // ?? headersForAuth: a.headersFromAuth, file: myFileFromSomewhere // ie HTML5 File() object }); // now can do things like <img src={`https://{BUCKET}.amazonaws.com/{a.id}`} /> // UNLESS the file is over 3mb or not an image/jpeg, in which case I want it to […]

AWS Lambda图像已损坏

我遇到了AWS Lambda问题,每隔几次上传,我的resize的图像就会被损坏。 我写了一个脚本,从S3中取出,并将其大小调整为另一个存储桶中的3种大小,主要是使用文件stream。 这里是代码: https://github.com/handonam/AWS-Resizer/blob/493ff10c317e7150d1ac040f54065083963a9c67/createThumbnails.js 您可以看到较大的512px放大文件(resize)以及原始(200px) 另一个resize为120px 我的lambda消费看起来大部分完全正常。 它设置在768mb内存和20s超时的同一地区。 这些脚本使用90 / 768mb的小图像(如500px宽)执行大约2秒,或者在更大的图像(如2000px宽)上执行14秒@ 648 / 768mb。 但即使是一个小图像,resize也会影响到我。 如果我放弃文件stream,只是写入缓冲区(就像aws示例一样 ),那么image processing将以缓冲区结束,而lambda将耗尽太多的资源。 任何指导表示赞赏!

ngCordova FileTransfer直接上传到AWS S3 WebKitFormBoundary问题

我正尝试使用ngCordova FileTransfer插件在AWS-S3上使用预先签名的url上载文件。 我成功地将file upload到AWS-S3,但文件的内容包含在内 ——WebKitFormBoundarylCFgJXqqECF1rJ2m Content-Disposition: form-data; name="file"; filename="75cae09191bd92a16c3ff05baeb88b9b.jpg" Content-Type: image/jpeg 由此导致图像文件无法打开。 我如何摆脱我的文件中的这个头。 我有一个想法,如果我把一个二进制数据,而不是forms的数据,它会摆脱这一点,因为我已经在POSTMANtesting它,但无法find任何方式来做cordova文件传输。 $cordovaFileTransfer.upload(s3SignedUrl, imagePathOnPhone, { fileKey: "file", fileName: localFileName, httpMethod: "PUT", mimeType: 'image/jpeg' }) .then(function (result) { console.log(result); }, function (error) { console.log(error); }, function (progress) { console.log(progress); }); 我的桶在法兰克福地区和API v4。 我在服务器上使用nodejs。

cordova/离子应用程序通过服务器签名的url上传base64图像到S3

我似乎无法将照片上传到S3上。 看了很多网上资源,我似乎无法find一个明确的答案。 这是我迄今为止。 我总是得到错误代码:3作为我的失败的消息。 客户端: $scope.uploadTopicPhoto = function(imageData) { var image2save = "data:image/jpeg;base64," + imageData; $http({ url: 'http://api.example.io/signS3upload', method: "GET" }).then(function (success) { var options = new FileUploadOptions(); options.fileKey = "file"; options.fileName = success.data.key options.mimeType = "image/jpeg"; options.chunkedMode = false; options.httpMethod = 'PUT'; function win(r) { console.log("Code = " + r.responseCode); } function fail(error) { […]

与JS / Node SDK的AWS S3同步

Amazon Web Services(AWS)命令行界面(CLI)具有同步命令 。 不幸的是,AWS CLI的同步方法有点麻烦。 我想使用gulp构build过程和Amazon的javascript / node SDK同步到S3。 不幸的是,SDK似乎没有同步方法 – 或者它? 将节点中的整个目录与AWS S3同步的最佳方法是什么?

Streaming-s3不能正常升级文件

我正在使用nodejs将file upload到aws服务器。 并发现文件大小不正确。 我得到2.1KB。 这是我的代码 var uploadFile = function (fileReadStream, awsHeader, cb) { //set options for the streaming module var options = { concurrentParts: 2, waitTime: 20000, retries: 2, maxPartSize: 10 * 1024 * 1024 }; //call stream function to upload the file to s3 var uploader = new streamingS3(fileReadStream, config.aws.accessKey, config.aws.secretKey, awsHeader, options); //start […]

使用node.js保存存储在s3上的图像?

我正在尝试编写一个使用node.js在s3上存储图像的图像服务器。 上传图片效果很好,我可以使用s3浏览器客户端(我使用的是dragondisk,但是我也成功下载了它)也可以正确下载和查看它,但是当我用节点下载并尝试将其写入磁盘,我无法打开该文件(它表示可能已损坏或使用预览无法识别的文件格式)。 我正在使用amazon sdk节点和fs写入文件。 我知道你可以通过一个可选的编码fs.writeFile,但我已经尝试了所有,它不起作用。 我也尝试在getObject上设置putObject和ResponseContentType上的ContentType,以及ContentEncoding和ResponseContentEncoding(以及各种组合中的所有这些东西)。 同样的结果。 这是一些代码: var AWS = require('aws-sdk') , gm = require('../lib/gm') , uuid = require('node-uui') , fs = require('fs'); AWS.config.loadFromPath('./amazonConfig.json'); var s3 = new AWS.S3(); var bucket = 'myBucketName'; // There's other logic here to set the bucket name. exports.upload = function(req, res) { var id = uuid.v4(); gm.format("/path/to/some/image.jpg", function(format){ […]

amazon s3 deleteObjects nodejs – 无法让它工作

我正在使用nodejs并试图一次删除多个对象。 但由于某种原因,尽pipe没有返回任何错误,操作不能按预期工作(文件不被删除)。 这里是代码: s3.deleteObjects({ Bucket: 'myprivatebucket/some/subfolders', Delete: { Objects: [ { Key: 'nameofthefile1.extension' }, { Key: 'nameofthefile2.extension' }, { Key: 'nameofthefile3.extension' } ] } }, function(err, data) { if (err) return console.log(err); console.log('success'); }); 如果我尝试遍历这些文件,并使用s3.deleteObject方法,那么它工作得很好。 我也试图指定没有其子文件夹(如“myprivatebucket”),但我没有得到任何结果。 任何想法如何使这个事情工作? 我使用节点版本:0.10.32和aws应该是2.0.17。

使用ec2创build存储在s3上的图像的缩略图,并在完成时与导轨进行通信的优雅方法?

好吧,快速总结一下我的设置和我想完成的事情: 我有一个轨道2.3.5服务器运行我的网站。 我在我的网站上有一个Flash应用程序,用户可以直接将图像上传到s3。 上传完成后,会通知Rails。 在图像完成上传到S3和轨道被通知的地步,我想轨道发送一些post到位于EC2的东西创build两个缩略图(110×110和600×600)。 当缩略图创build并传输到S3,我想要任何进程的EC2发回一个职位的轨道,以通知缩略图创build完成,并在S3上。 什么是完成这个最好的方法? 我非常简短地看过刀等工具,但对于使用ec2或类似的服务,我并不熟悉。 谢谢

AWS Cors问题 – Node.js

使用CORS标头请求存储在AWS S3(简单存储)上的图像时,我目前遇到问题。 我已经在AWS控制台上设置了CORSconfiguration – 设置如下: <?xml version="1.0" encoding="UTF-8"?> <CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <CORSRule> <AllowedOrigin>*</AllowedOrigin> <AllowedMethod>GET</AllowedMethod> <MaxAgeSeconds>3000</MaxAgeSeconds> <AllowedHeader>Authorization</AllowedHeader> </CORSRule> </CORSConfiguration> 然而,当我请求这些存储的图像的时候,我得到的回应是一点点的,而且是相当间歇的。 有时图像是返回与头requred有时不是。 我真的不知道为什么会发生这种情况。 当我尝试使用一个页面上的Access-Control-Allow-Origin头部设置为*的方式尝试创build一个以上的图像请求时,效果会恶化(例如,如果我需要10个图像来检索所有带有交叉原始头文件)。 这些是我需要的标题: Access-Control-Allow-Methods:GET Access-Control-Allow-Origin:* Access-Control-Max-Age:3000 我真的不确定我做错了什么。 我已经确保每个图片标签都添加了crossOrigin =“anonymous”属性,但同样没有运气。 我需要这些图像交叉原点的原因是因为我已经安装了一个angular度插件,允许用户裁剪图像,并将裁剪版本的图像存储为base64string。 不过,在尝试检索它们时,出现以下错误。 这些是正确返回的图像的标题: Request URL:https://trajansmarket.s3.amazonaws.com/be5bbda0-b04a-11e5-81d3-dd7ff3efeebc.jpg Request Method:GET Status Code:304 Not Modified Remote Address:54.231.252.131:443 Response Headers view source Access-Control-Allow-Methods:GET Access-Control-Allow-Origin:* Access-Control-Max-Age:3000 Cache-Control:public, max-age=31536000 Date:Tue, 12 Jan 2016 21:13:03 […]