问题标签 [knox-amazon-s3-client]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1395 浏览

javascript - knox S3 上传损坏或截断的文件

这是一个脑筋急转弯问题,我实际上知道答案。我悬赏它,因为它代表了一个有价值的 Node 编程安全提示(这是第一个提示)。

  • 提示 2:在 HTTP 请求中,“Content-Length”标头字段的单位是什么?

我在用着

结果上传被截断或以其他方式损坏。我们有stringVal.length === 322889,并且生成的 S3 项目大小与之匹配。但是下载和重新加载文件会产生一个长度为的字符串322140。在尝试 JSON.parse 字符串(可预测地)导致语法错误之前,不会出现任何错误。

这是怎么回事?

0 投票
4 回答
16759 浏览

node.js - 使用强大的和(knox 或 aws-sdk)在 Node.js 上将文件流式上传到 S3

我正在尝试使用aws-sdkknox将通过表单提交的文件直接上传到 Amazon S3 存储桶。表单处理是用强大的完成的。

我的问题是:如何使用这些库的最新功能来处理流,如何正确使用 aws-sdk(或 knox)的强大功能?

我知道这个话题已经在这里以不同的方式提出过,即:

但是,我认为答案有点过时和/或偏离主题(即 CORS 支持,由于各种原因我现在不想使用它)和/或最重要的是,没有提及来自的最新功能aws-sdk(参见:https ://github.com/aws/aws-sdk-js/issues/13#issuecomment-16085442 )或 knox(尤其是 putStream() 或其 readableStream.pipe(req) 变体,两者都解释了在文档中)。

经过几个小时的挣扎,我得出的结论是我需要一些帮助(免责声明:我是流的新手)。

HTML 表单:

Express bodyParser 中间件是这样配置的:

POST 请求处理程序:

但是,我收到以下错误:

{ [RequestTimeout:您与服务器的套接字连接未在超时期限内读取或写入。空闲连接将被关闭。]

消息:'您与服务器的套接字连接未在超时期限内读取或写入。空闲连接将被关闭。',代码:'RequestTimeout',名称:'RequestTimeout',状态码:400,可重试:false }

以这种方式定制的 handlePart() 函数的 knox 版本也惨遭失败:

我还在某处得到一个带有 400 statusCode 的大 res 对象。

在这两种情况下,区域都配置为eu-west-1

补充笔记:

节点 0.10.12

来自 npm (1.0.14) 的最新强大功能

来自 npm (1.3.1) 的最新 aws-sdk

来自 npm 的最新 knox (0.8.3)

0 投票
1 回答
577 浏览

node.js - NodeJS 文件上传到 Amazon S3 存储映射到数据库

我在看Knox S3 库。在我的网络应用程序中,允许用户上传文件。我正在考虑使用 Amazon S3。

在 Knox 中,如何映射上传给用户的文件?假设我想知道用户上传的文件。这将存储在 MongoDB 中。

只是一个想法。

0 投票
1 回答
1973 浏览

node.js - 对于 node.js,knox 和 AWS 开发工具包有什么区别?

...据我了解,他们做同样的事情:提供对亚马逊网络服务的访问。有人可以提供这两个库之间不同功能的列表吗?如果亚马逊已经提供了产品,为什么还存在 knox?

0 投票
1 回答
1845 浏览

node.js - 错误:读取 ECONNRESET ExpressJS 和 Amazon S3

我在 ExpressJS Web 应用程序中使用 Knox S3 插件来显示在 Amazon S3 中上传的图像。显示图像时,有时会出现以下错误。我不知道错误。是什么导致了错误?

这就是我从 Amazon S3 渲染图像的方式:

0 投票
1 回答
565 浏览

node.js - Amazon S3 查询字符串身份验证取消下载?

我正在 NodeJS 中构建一个应用程序,它使用Knox S3 客户端将文件存储在 Amazon S3 中。一切都适用于上传文件,移动文件等。

现在我想使用查询字符串身份验证机制来允许直接下载文件。为此,我在 NodeJS 服务器上调用了一些代码来调用 Knox 库并创建一个签名的 url。

代码如下所示:

此代码返回带有身份验证参数的正确 URL。例如:

https://my-bucket.s3.amazonaws.com/some/folder/file.ext?Expires=1234567890&AWSAccessKeyId=ABCDEFGHIJKLMNO&Signature=someEncodedSignature

根据我读过的所有文件,这是一个正确的 URL。这个网址我没有从亚马逊收到任何错误。过期是正确的(我可以通过创建 1 秒的过期然后得到过期错误来验证这一点)。文件路径也正确。

但是,当我在浏览器中点击 url 时,我的浏览器(OSX 上的最新 Chrome)取消了文件的下载,即使我收到了200 ok包含正确文件信息的响应。

这是来自 Chrome 开发工具的请求信息的副本(已替换敏感位):

如您所见,服务器响应为“200 ok”。content-length341390 也是我尝试下载的文件的正确长度 - 这是实际文件大小。我将内容类型设置为“application/octet-stream”,因为这就是我告诉 S3 存储文件的方式......我只想要原始下载,基本上。

但在收到 S3 的此响应后,Chrome 会取消下载。这是来自 devtools 的屏幕截图,再次:

FireFox 和 Safari 都按预期下载文件。为什么chrome取消下载?我究竟做错了什么?是内容类型吗?或者 ?

0 投票
1 回答
382 浏览

node.js - 在 Knox 中为连接设置代理服务器

我正在使用 LearnBoost/knox 连接到 Amazon S3,但我的机器使用的是代理服务器。我已经设置了一个环境变量 http_proxy 和 https_proxy 但 Knox 没有使用它。如何让 Knox 通过代理服务器进行通信。

0 投票
1 回答
1450 浏览

node.js - Knox S3 - NodeJS/ExpressJS 错误:套接字挂断

我在 Amazon S3 的 NodeJS 模块中遇到以下错误:Knox

启用后longjohn,我可以说错误是在从 Amazon S3 显示图像的路径上。

如何处理错误以使服务器不会崩溃?

0 投票
4 回答
4572 浏览

node.js - S3、签名 URL 和缓存

我正在使用 knox nodejs-library 在我的 webapp (nodejs) 上生成签名的 url。但是问题出现了,对于每个请求,我都需要为当前用户重新生成一个唯一的 GET 签名 url,从而将浏览器的缓存控制排除在游戏之外。

我已经在网上搜索但没有成功,因为浏览器似乎使用完整的 url 作为缓存键,所以我真的很好奇在给定的情况下(nodejs、knox 库)如何解决问题并使用缓存控制,同时仍然能够为每个请求生成签名的 url,因为我需要验证用户的访问权限。

我不敢相信没有解决方案。

0 投票
1 回答
550 浏览

node.js - npm knox 签名网址 http

我正在使用 nodejs npm 包“knox”连接到亚马逊 s3。我想创建一个下载网址。

目前我使用:

这会生成如下所示的 HTTPS URL:

是否可以获得http url?

我想在我的主页上显示图像,它们不需要 TLS 保护。