问题标签 [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.
rust - 如何将带有类型参数的结构作为函数参数传递?
如何将EcsClient
带有签名的实例impl<P, D> EcsClient<P, D> where P: ProvideAwsCredentials, D: DispatchSignedRequest
作为 Rust 中的引用传递给函数?因此,我的尝试是:
这给了我以下错误:
我试图解决这个问题是这样的:
这给了我:
这感觉就像一个兔子洞,我不应该掉下去。
我还尝试更改函数签名以接受泛型,但是它EcsClient
是结构而不是特征。谷歌搜索并没有提供太多帮助,因为我不知道要搜索的正确术语。
这个问题似乎暗示我应该能够声明一个类似的函数fn my_func(client: &EcsClient) { ... }
并且它会起作用,那么为什么上面的例子没有呢?
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,到目前为止对我来说效果很好:
我试图解决这个问题的一些事情......
添加
openssl = "0.9.14"
到 Cargo.toml。将我的 Dockerfile 更改为:
这也没有改变任何东西,但给了我更多的选择来看看里面。
我将交叉编译步骤更改为
cargo clean
:构建新的 docker 镜像后,获取一个 shell:
在那里,我通过为不存在且没有不同效果的 ssl 证书提供不同的路径来执行我的项目。
在下一次运行中,我将它设置为指向不同的路径:
/li>SSL_CERT_DIR=/etc/ssl/certs /project
当打印出client.get_object(&request)
调用的错误时,我得到了一个有趣的结果:我用 aws-sdk-rust crate 替换了 rusoto
我在我的 Mac 上通过 VirtualBox 安装了 Linux 发行版,更新了库,安装了 OpenSSL 头文件和 rust,然后导入了项目。现在我马上收到 SignatureDoesNotMatch 错误。我验证了我可以通过主机的 vpn 通过 https 访问 Neo4j 服务器,因此 SSL 似乎至少可以部分工作。
在 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 错误。在我的 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 传递到容器的环境中)
amazon-s3 - 将 Rusoto S3 StreamingBody 读入 Brotli 可以解压的东西
从 AWS S3 请求文件时返回的rusuto_s3的StreamingBody版本 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();
.
但是,这失败了:
正如您在完整的代码示例中所见,已添加建议,但结果没有不同。
file - 如何将使用 Rusoto 从 S3 下载的文件保存到我的硬盘?
我正在尝试使用 Rusoto 从存储桶中下载文件,并且正在获取文件内容:
如何将此GetObjectOutput(result)
对象保存到文件中?
amazon-s3 - 使用 rusoto 将字符串上传到 S3
我正在使用rusoto S3 创建 JSON 字符串并将此字符串上传到 S3 存储桶。我可以创建字符串,但是 rusoto 的 S3PutObjectRequest
需要 aStreamingBody
并且我不确定如何StreamingBody
从字符串创建 a 或者这是否真的有必要。
我得到的错误是
我不知道如何给这个ByteStream
...ByteStream::new(json::stringify(paths))
不起作用并给我一个不同的错误。
如何上传字符串?
rust - 使用 FuturesOrdered 组合器的 Rusoto 异步
我正在尝试使用以下方式发送并行异步 Rusoto SQS 请求FuturesOrdered
:
任务正确完成但tokio::run(tasks)
不会停止。我认为这是因为tasks.for_each()
会迫使它继续运行并寻找更多的未来?
为什么tokio::run(tasks)
停不下来?我使用FuturesOrdered
正确吗?
FuturesUnordered
在创建多达 60,000 个期货以完成并将它们推入组合器时,我也有点担心内存使用情况。
rust - 为什么从 Actix Web 处理程序中的 Rusoto S3 流读取会导致死锁?
我正在使用actix_web
and编写应用程序rusoto_s3
。
当我直接从 actix 请求之外运行命令时main
,它运行良好,并且get_object
按预期工作。当它被封装在一个 actix_web 请求中时,该流被永远阻塞。
我有一个为所有请求共享的客户端,它封装在一个Arc
(这发生在 actix 数据内部)中。
完整代码:
在stream.read_to_end
线程中被阻止并且永远不会解决。
我已经尝试根据请求克隆客户端并为每个请求创建一个新客户端,但在所有场景中我都得到了相同的结果。
难道我做错了什么?
如果我不异步使用它,它会工作......
这是东京的问题吗?
rust - 如何使用 rusoto_s3 将 actix 多部分字段保存到 s3?
我对 rust 完全陌生,但正在学习。我正在尝试使用 actix_web 和 actix_multipart 进行分段上传,并使用 rusoto_s3 将其上传到 aws s3。从我的基本理解来看,基本上我有一个类型的流,我需要将其转换为ByteStream
所需的类型put_object PutObjectRequest { body }
。
我想我需要在现场使用地图将其从一种类型转换为另一种类型,但我有点迷茫。
例如,沿着这些思路?
谢谢您的帮助!
amazon-s3 - 如何通过 rusoto / rust 使用 select_object_content?
以下代码尝试从存储在 S3 上的文件中选择一些数据:
它会导致以下错误:
不允许针对此资源使用指定的方法。POST
该示例是一个工作 Python/boto3 示例的 1:1 端口,所以我很确定它应该可以工作。我发现了这个问题,这是几个月前的问题,我不清楚状态。我如何让这个与 Rust 一起工作?