Tag: amazon s3

错误:configuration文件丢失 – /nodeapp/node_modules/aws-sdk/lib/request.js:31

我从AWS-SDK中使用s3.listObjects()函数拉对象,并且不断收到以下错误: /nodeapp/node_modules/aws-sdk/lib/request.js:31 其次是 Error: Missing credentials in config at IncomingMessage.<anonymous> (/nodeapp/node_modules/aws-sdk/lib/util.js:863:34) at emitNone (events.js:91:20) at IncomingMessage.emit (events.js:186:7) at endReadableNT (_stream_readable.js:974:12) at _combinedTickCallback (internal/process/next_tick.js:74:11) at process._tickDomainCallback (internal/process/next_tick.js:122:9) 这不加起来,因为我有一个不同的路线(downloadParam),从S3中检索一个对象,而不会给我这个错误。 此外,当我注销从downloadResults路由检索到的对象,似乎检索对象没有问题,但我仍然会得到这个错误。 我花了几个小时在这个问题上,我似乎无法弄清楚为什么会发生这种情况。 我已经粘贴了两条路线的代码,一个是有效的,另一个是没有的。 从我在线收集的信息来看,这看起来更像是一个代码问题,而不是AWS-SDK的凭证问题。 downloadParam: function(app, s3){ app.use('/api', apiRoutes) apiRoutes.get('/download-param-file', function(req, res, next){ res.set({'Content-Type':'text/csv'}) s3.getObject({Bucket: 'some-bucket', Key: 'some-key' + req.query.fileName}, function(err, file){ if (err) { console.log(err); return next(err); […]

无法使用nodeJS从S3下载文件:less数文件没有完成

这使我疯狂。 我需要我的服务器从S3(最大2 Mb)下载100个相对较小的文件文件。 它总是工作约95%的文件,但它阻止了最后的6-8文件。 resolve也rejectcallback从来没有被调用… 我试图并行下载文件… 任何人经历过这个 可能是一个数据包丢失,stream不closures? 是否有最大数量的并发下载? 这里是代码,95%的案例在技术上是可行的: let singleGetFromS3 = (bucket, fileName) => { return new Promise((resolve, reject) => { let extension = getFileNameExtension(fileName); fs.stat(`./${fileName}`, (err, stat) => { if (err === null) { console.log(`${fileName} exists locally`); resolve(fileName); } else if(err.code === 'ENOENT') { let params = {Bucket: bucket, Key: fileName}; let […]

如何使用aws-sdk获取AWS S3上的文件的URL?

我正在使用AWS Lambda函数创build一个文件并将其保存到S3上的存储桶中,该文件工作正常。 执行putObject方法后,我得到一个data对象,但它只包含最近添加的对象的Etag 。 s3.putObject(params, function(err, data) { //data only contains Etag }); 我需要知道我可以在浏览器中使用的确切URL,以便客户端可以看到该文件。 该文件夹已经公开,我可以看到该文件,如果我从S3控制台复制链接。 我试过使用getSignedUrl但它返回的URL用于其他目的,我相信。 谢谢!

从node.js中的JSON将s3桶策略转换为base64

我正在尝试在node.js中的base64中对Amazon s3存储桶策略进行编码(更具体地说是StringToSign),但似乎无法获得正确的代码。 我使用由amazon提供的默认策略进行testing,因为它们提供了正确的base64编码。 ( 亚马逊给出的例子 ) 他们的输出是eyAiZXhwaXJhdGlvbiI6ICIyMDE1…….. (保持它很短,因为它很长) 我不断收到eyJleHBpcmF0aW9uIjoiMjAxNS0xMi0zMFQx….. 我的代码来生成这个是: var policyString = JSON.stringify(policy) var policyBytes = utf8.encode(policyString) var stringToSign = base64.encode(policyBytes) 其中policy是以JSON格式保存亚马逊策略的variables,而utf8和base64是节点模块。 这可能听起来像一个新手的问​​题,但我一直盯着它一段时间,任何hlep将不胜感激!

存储静态内容时应用程序大小是否重要?

我打算将HTML,PDF和图像文件存储在公共文件夹中的节点应用程序中,而不是某些s3存储桶。b / ci希望从我的域而不是s3 url获得更清洁的URL。 随着时间的推移,我的应用程序将增长到包含超过50万的HTML,PDF和图像。 这是否会减慢应用程序的未来,因为应用程序的足迹将是巨大的,还是会工作正常? 在应用程序中存储大量静态内容的潜在缺点是什么?

如何使用Node.js获取Amazon S3存储桶的总大小?

我正在开发几个Node.js项目,其中将为每个创build帐户的用户设置Amazon S3存储桶。 我想限制用户可以使用的总大小。 我一直在研究Knox客户端https://github.com/learnboost/knox ,在开发Node.js应用程序时,它应该能够使Amazon S3轻松工作。 但经过大量的研究,我似乎无法find一种有效地获取桶文件大小的方法 – 我可以在其上做用户帐户限制等。 我希望这是第一个正确的方法,但也许不是? 从概念上讲,我想存储在Amazon S3上传的用户帐户媒体文件,我想限制用户总共可以上传和使用多less。 非常感谢,詹姆斯

如何通过webapp上传一个一兆字节的文件到Amazon S3?

我想知道如何上传大文件到亚马逊S3(> 1兆兆字节) 理想情况下,networking应用上传机制应该有: 实时进度条 上传速度统计 暂停/恢复支持 直接从电脑上传到亚马逊S3 内存高效,使大文件可以通过网页浏览器发送。 我已经尝试通过Django Uploadify S3 。 虽然看起来不能很好地处理大文件。 有没有人知道Github上的现有演示应用程序或使用以下任何语言的文档? 轨道 Django的 PHP Java的 最近,我也有关于诺克斯S3库和nodejs的goggled ,虽然我还没有find一个演示应用程序上传。

在NodeJS的pkgcloud中,“stream和pipe-capable”意味着什么

我的问题是让图像上传到亚马逊工作。 我正在寻找一个解决scheme,不保存在服务器上的文件, 然后将其上传到亚马逊。 使用谷歌search我发现pkgcloud和README.md它说: 已经给予了特别的关注,使方法是stream和pipe道的能力。 有人可以解释这是什么意思,如果这是我在找什么?

从Cloudinary切换到S3 – 无法上传

我有一个KeystoneJS项目,将从Cloudinary切换到S3。 该项目与Cloudinary开箱即用。 但是,我们想迁移到使用S3进行存储。 我目前有S3在我的keystone.js文件中设置: var config = require('./config.json'); keystone.set('s3 config', { bucket: config.s3.bucket, key: config.s3.key, secret: config.s3.secret }); 我有另一个叫做Page模型,我想用上传图片。 有一个名为heroImage的字段,以前是一个简单的{ type: Types.Cloudinary } 但是,为了使用S3,我必须将其更改为: heroImage: { type: Types.S3File, format: function(item, file) { return '<img src="' + file.url + '" style="max-width: 300px">'; } } 进入AdminUI时,一切都很好。 我可以点击Upload File ,按下Save ,我收到一条成功消息。 我用传输检查了S3存储桶,发现这个文件从未上传过。 另外,去文件URL显示这个: <Error> <Code>PermanentRedirect</Code> <Message> The bucket […]

节点js中的代码lambda:从事件数据中获取s3密钥的最后修改date

我正在使用lambda中的节点js代码。 一个函数 当创build一个S3对象时传递事件数据 var record = event.Records[0]; var bucket = record.s3.bucket.name; var key = record.s3.object.key; 我怎样才能得到s3键的最后修改date来创build一个文件夹并粘贴在其​​中的密钥。 如果最后修改date是: Mon Feb 22 14:46:23 GMT+530 2016 , 那么文件夹名称必须是: Bucketname/2016/02/22/