问题标签 [rusoto]

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 投票
2 回答
4674 浏览

rust - 如何将带有类型参数的结构作为函数参数传递?

如何将EcsClient带有签名的实例impl<P, D> EcsClient<P, D> where P: ProvideAwsCredentials, D: DispatchSignedRequest作为 Rust 中的引用传递给函数?因此,我的尝试是:

这给了我以下错误:

我试图解决这个问题是这样的:

这给了我:

这感觉就像一个兔子洞,我不应该掉下去。

我还尝试更改函数签名以接受泛型,但是它EcsClient是结构而不是特征。谷歌搜索并没有提供太多帮助,因为我不知道要搜索的正确术语。

这个问题似乎暗示我应该能够声明一个类似的函数fn my_func(client: &EcsClient) { ... }并且它会起作用,那么为什么上面的例子没有呢?

0 投票
2 回答
3236 浏览

docker - 部署时 Docker 和“OpenSSL 库报告错误”

我通过 Amazon Elastic Container Service 通过 Rust 和 Rocket 提供 API。每当我将对象放入或获取到 Amazon S3 时,它在本地运行良好,但如果部署在 Amazon ECS 上,我会收到以下运行时错误:

当我在我的机器上运行 Docker 映像时也会发生这种情况。

我在发生错误的地方添加了评论:

货运.toml

这就是我在 macOS 上构建 Docker 映像的方式:

Docker 镜像manonthemat/muslrust本质上是clux/muslrust。我必须构建自己的镜像,因为我需要更新的 Rust 夜间构建。

这是(简化的)Dockerfile,到目前为止对我来说效果很好:


我试图解决这个问题的一些事情......

  1. 添加openssl = "0.9.14"到 Cargo.toml。

  2. 将我的 Dockerfile 更改为:

    这也没有改变任何东西,但给了我更多的选择来看看里面。

  3. 我将交叉编译步骤更改为cargo clean

    构建新的 docker 镜像后,获取一个 shell:

    在那里,我通过为不存在且没有不同效果的 ssl 证书提供不同的路径来执行我的项目。

    在下一次运行中,我将它设置为指向不同的路径: SSL_CERT_DIR=/etc/ssl/certs /project当打印出client.get_object(&request)调用的错误时,我得到了一个有趣的结果:

    /li>
  4. 我用 aws-sdk-rust crate 替换了 rusoto

  1. 我在我的 Mac 上通过 VirtualBox 安装了 Linux 发行版,更新了库,安装了 OpenSSL 头文件和 rust,然后导入了项目。现在我马上收到 SignatureDoesNotMatch 错误。我验证了我可以通过主机的 vpn 通过 https 访问 Neo4j 服务器,因此 SSL 似乎至少可以部分工作。

  2. 在 Amazon ECS-Optimized Amazon Linux AMI 2017.03.a 上编译和运行该项目有效。构建 docker 镜像也可以。从该系统内运行 docker 映像不会,因为standard_init_linux.go:178: exec user process caused "no such file or directory"即使文件存在,它也会返回,具有正确的权限,可以在其上运行其他操作等等......只是不执行它。回滚到没有任何 S3/OpenSSL 依赖项的先前状态时也是如此。这适用于scratch基础alpine图像。但是,如果我使用基础镜像构建 docker 镜像ubuntu,我会运行 S3/OpenSSL 之前的版本。对于带有 rusuto 的版本,即使在安装 OpenSSL 库及其头文件时,我也会收到 OpenSSL 错误。

  3. 在我的 Mac 上编译 Docker 镜像,推送到私有仓库到 docker hub。通过 ssh 会话将该 docker 映像拉到 EC2 实例上(与 6 中的相同)。现在运行它不会像 6 中那样给我“没有这样的文件或目录”错误,而是好的 ol' HttpDispatch(HttpDispatchError { message: "The OpenSSL library reported an error" })(现在即使将 SSL_CERTS_DIR=/etc/ssl/certs 传递到容器的环境中)

0 投票
0 回答
536 浏览

amazon-s3 - 将 Rusoto S3 StreamingBody 读入 Brotli 可以解压的东西

从 AWS S3 请求文件时返回的rusuto_s3StreamingBody版本 0.32不再实现读取。

直到这个版本,brotli::BrotliDecompress(&mut &*would_like_to_pass_this, &mut contents);我将数据从 S3 中取出并放入内容的方式。现在这会导致此错误消息:

错误[E0614]:rusoto_s3::StreamingBody无法取消引用类型

调整brotli::BrotliDecompress(&mut would_like_to_pass_this, &mut contents);使投诉者抱怨:

错误[E0277]:rusoto_s3::StreamingBody::std::io::Read不满足特征界限

该特征std::io::Read未实现rusoto_s3::StreamingBody

这是brotli::BrotliDecompress.

因为 StreamingBody 应该根据文档实现 Stream,所以我尝试使用let bytes = body.concat2().wait().unwrap();.

但是,这失败了:

正如您在完整的代码示例中所见,已添加建议,但结果没有不同。

0 投票
2 回答
2538 浏览

file - 如何将使用 Rusoto 从 S3 下载的文件保存到我的硬盘?

我正在尝试使用 Rusoto 从存储桶中下载文件,并且正在获取文件内容:

如何将此GetObjectOutput(result)对象保存到文件中?

0 投票
1 回答
2640 浏览

amazon-s3 - 使用 rusoto 将字符串上传到 S3

我正在使用rusoto S3 创建 JSON 字符串并将此字符串上传到 S3 存储桶。我可以创建字符串,但是 rusoto 的 S3PutObjectRequest需要 aStreamingBody并且我不确定如何StreamingBody从字符串创建 a 或者这是否真的有必要。

我得到的错误是

我不知道如何给这个ByteStream...ByteStream::new(json::stringify(paths))不起作用并给我一个不同的错误。

如何上传字符串?

0 投票
1 回答
469 浏览

rust - 使用 FuturesOrdered 组合器的 Rusoto 异步

我正在尝试使用以下方式发送并行异步 Rusoto SQS 请求FuturesOrdered

任务正确完成但tokio::run(tasks)不会停止。我认为这是因为tasks.for_each()会迫使它继续运行并寻找更多的未来?

为什么tokio::run(tasks)停不下来?我使用FuturesOrdered正确吗?

FuturesUnordered在创建多达 60,000 个期货以完成并将它们推入组合器时,我也有点担心内存使用情况。

0 投票
1 回答
880 浏览

rust - 为什么从 Actix Web 处理程序中的 Rusoto S3 流读取会导致死锁?

我正在使用actix_weband编写应用程序rusoto_s3

当我直接从 actix 请求之外运行命令时main,它运行良好,并且get_object按预期工作。当它被封装在一个 actix_web 请求中时,该流被永远阻塞。

我有一个为所有请求共享的客户端,它封装在一个Arc(这发生在 actix 数据内部)中。

完整代码:

stream.read_to_end线程中被阻止并且永远不会解决。

我已经尝试根据请求克隆客户端并为每个请求创建一个新客户端,但在所有场景中我都得到了相同的结果。

难道我做错了什么?

如果我不异步使用它,它会工作......

这是东京的问题吗?

0 投票
0 回答
522 浏览

rust - 如何使用 rusoto_s3 将 actix 多部分字段保存到 s3?

我对 rust 完全陌生,但正在学习。我正在尝试使用 actix_web 和 actix_multipart 进行分段上传,并使用 rusoto_s3 将其上传到 aws s3。从我的基本理解来看,基本上我有一个类型的流,我需要将其转换为ByteStream所需的类型put_object PutObjectRequest { body }

我想我需要在现场使用地图将其从一种类型转换为另一种类型,但我有点迷茫。

例如,沿着这些思路?

谢谢您的帮助!

0 投票
1 回答
361 浏览

amazon-s3 - 如何通过 rusoto / rust 使用 select_object_content?

以下代码尝试从存储在 S3 上的文件中选择一些数据:

它会导致以下错误:

不允许针对此资源使用指定的方法。POST

该示例是一个工作 Python/boto3 示例的 1:1 端口,所以我很确定它应该可以工作。我发现了这个问题,这是几个月前的问题,我不清楚状态。我如何让这个与 Rust 一起工作?

0 投票
2 回答
2496 浏览

rust - 使用 rusoto 流式上传到 s3

如何使用rusoto将文件上传到 s3 ,而不将文件内容读取到内存(流式传输)?


使用此代码:

我收到以下错误: