问题标签 [aws-sdk-cpp]

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 回答
244 浏览

c++ - 设置分段上传阈值

在 AWS S3 CLI 中,我们可以设置以下参数:

multipart_threshold - CLI 用于单个文件的多部分传输的大小阈值。

我们可以在 aws cpp sdk 客户端做这样的事情吗?

当然,我可以设置 TransferManagerConfiguration 的 bufferSize,但是我必须使用 TransferManager。我只想直接使用 S3Client。

有没有办法做到这一点?

0 投票
1 回答
160 浏览

amazon-ec2 - 在 c++ 中的 aws ec2 describeinstance api 调用中创建过滤器的语法帮助

使用 DescribeInstancesRequest (c++ sdk) 获取有关特定 instance_id 的响应。我在构建过滤器时遇到问题。

我正在调整 aws-doc-sdk-examples c++ 示例代码 describe_instances.cpp 提供的示例代码。我添加了代码来过滤响应以使用已知的有效(现在是硬编码)实例 ID。

我尝试了多种变体来设置过滤器,但是文档对我来说并不清楚过滤器的“值对”格式。

这是完整的代码。它只编译 find,但总是以“找不到:...”作为响应

请让我知道过滤器语法有什么问题!(见评论部分过滤实例ID)

谢谢

0 投票
1 回答
660 浏览

c++ - 如何为 S3 使用 AWS SDK cpp async API?

我希望在我的应用程序中使用 s3 的 aws sdk cpp async api。但是我无法找到相同的文档。我已经通过https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/cpp/example_code/s3但没有包含异步 api 的示例。

例如,我正在尝试使用 PutObjectAsync api。根据此处给出的 api 参考指南https://sdk.amazonaws.com/cpp/api/LATEST/class_aws_1_1_s3 ​​_1_1_s3​​_client.html#aee8d39c350c5bb66a8d1edcc18df2b78 您需要形成 PutObjectRequest、PutObjectResponseReceivedHandler 和 AsyncCallerContext。

这里没看懂PutObjectResponseReceivedHandler和AsyncCallerContext怎么组成。有人可以指导我完成它。

0 投票
2 回答
2112 浏览

c++ - [aws-sdk-cpp][s3] 使用 getObject 下载二进制文件

我正在尝试编写一些代码来从 AWS S3 服务器下载二进制文件。

我在下面写了这段代码,大约 200MB 的二进制文件看起来没问题,所以我认为它有效。

但是对于像 200MB~ 这样的大文件,它会被下载,但只是文件的前面部分。

例如,一个视频文件(1.2GB)只下载了前面部分(460MB ~ 700MB)。

为什么会发生这种情况?它是关于流功能的吗?

0 投票
1 回答
34 浏览

c++ - AWS 开发工具包 CPP 和 EBS 连接

根据我的研究,我发现 AWS SDK CPP 允许上传/下载文件到存储桶。

我需要对AWS EBS 大量类型具有相同的上传/下载访问权限st1,但我找不到任何关于它的示例或教程。有什么办法吗?我在非常大的文档中搜索但没有成功。

0 投票
1 回答
534 浏览

amazon-web-services - 为什么我不能在 AWS Batch C++ SDK 中覆盖多节点并行作业的容器变量?

我正在使用 AWS Batch。我的目标是通过适用于 C++ 的 AWS 开发工具包创建多节点并行作业。为此,我按照此处的说明创建了一个工作定义。

我正在使用 AWS C++ SDK,我注意到当我尝试覆盖环境变量或命令时,实际上没有任何内容传输到作业中。

有趣的是,对于使用普通作业定义(与多节点作业相反)的作业,相同的代码工作得非常好:

}

我应该为多节点并行作业使用不同的 API 吗?

0 投票
2 回答
332 浏览

aws-sdk-cpp - 使用 AWS C++ SDK 最大化 S3 上传性能

我正在使用启用了 ENA 适配器的 c5.18xlarge 实例(因此希望每个 AWS 支持具有 25 Gbps 到 S3 的连接)。我在 RHEL 7 上使用 AWS C++ SDK(版本 1.3.59)使用 256 MB 的部分大小将 70 GB 的文件上传到单个 S3 对象。根据 AWS 支持,我将 ClientConfiguration 的 maxConnections 字段设置为 999,并将其 executor 字段设置为使用池大小为 999 的 PooledThreadExecutor(这些提高了我的性能)。我正在执行一系列 S3Client::UploadPart() 调用,自己处理这些;使用 UploadPartCallable() 并让 SDK 管理线程时,我获得了非常相似的性能。

这是我看到的性能: - 36 个线程:7.5 Gbps - 200 个线程:15.7 Gbps

AWS 支持报告了类似的行为(实际上他们使用了 900 个线程)。

我浏览了 S3Client 的底层实现以及所有低级线程管理和 curl 句柄管理。我没有看到任何明显低效的事情发生。我需要 200 个线程才能在具有 36 个物理内核的机器上实现这种性能,这对我来说没有任何意义。这是预期的吗?有人可以解释正在发生的事情或将 SDK 配置为不需要这么多线程的不同方法吗?我想我可以提供我自己的 HTTPClientFactory 并定制一些东西,如果我小心的话,可以在 curl 句柄的管理方式中去掉一个互斥锁,但这似乎不太可能解释我所看到的。

谢谢你的帮助。

-亚当

0 投票
0 回答
245 浏览

c++ - AWS SDK for C++ 中“allocationTag”参数的用途是什么?

AWS 内存分配函数 , , , Aws::MakeShared,Aws::MakeUniqueAws::MakeUniqueArray所有都需要提供 const char * allocationTag 参数,但是,尚不清楚该字符串的确切用途。Aws::MallocAws::NewAws::NewArray

AWS SDK for C++ 文档Aws::MakeShared说:

“...allocationTag 用于内存跟踪目的。”

但是,allocationTag 究竟是如何用于内存跟踪的呢?是否有关于 AWS 内存管理功能使用哪些 allocationTags 值的指南?

0 投票
1 回答
541 浏览

c++ - aws sdk c++ 代码不适用于发布版本

我有一个在 Visual Studio 2017 中创建的 .dll c++ 项目。我在其中有使用 aws sdk 从 s3 存储桶获取文件的代码。

我在调试模式模式下构建了这个 dll 项目,并在我的主应用程序(c++)上使用它。它奏效了。

现在我确实做了一个 dll 项目和我的主应用程序的发布版本。我的应用程序在执行“aws sdk c++”代码时崩溃。

这是关于 aws sdk c++ 的代码片段:

希望可以有人帮帮我。

0 投票
1 回答
738 浏览

c++ - 在 Freeswitch 中使用 AWS C++ SDK 加载模块时出现未定义符号错误

我再次问这个问题,因为 mods 决定在这里关闭我的问题作为重复,在被问到的几分钟内(并且也被否决了!!)。现在,我已经浏览了所有33 个被认为是我的解决方案的答案,但它没有帮助。所以我又问了。

我正在尝试构建一个 FreeSWITCH 模块,以使用 AWS Polly 和 AWS C++ SDK 添加文本转语音功能。开发环境是 Debian 8,g++ 4.9.2。AWS C++ SDK 是使用此处的说明构建的,但我关闭了共享库(生成 .a 库文件)。

AWS C++ SDK 是按照此处的建议构建的(基本上是带有 C++ 链接的 C++ 代码)。mod_polly.cpp也使用 C++ 链接构建以生成mod_polly.so. 它确实引用了一些 C 头文件和函数。这是建造为 -

g++ -shared -o mod_polly.so -L/usr/local/lib/ -laws-cpp-sdk-polly -laws-cpp-sdk-core -fPIC -g -ggdb -std=c++11 -Wall -Werror -I/usr/src/freeswitch/src/include/ -I/usr/src/freeswitch/libs/libteletone/src/mod_polly.cpp

以下来源 -

现在当我尝试加载它时Freeswitch,它会引发错误

2019-07-31 22:00:51.918181 [CRIT] switch_loadable_module.c:1522 加载模块 /usr/local/freeswitch/mod/mod_polly.so 时出错

/usr/local/freeswitch/mod/mod_polly.so:未定义符号:_ZNK3Aws35AmazonSerializableWebServiceRequest7GetBodyEv

Freeswitch 是在头文件中带有 C++ 保护的 C 代码(外部“C”声明)。

看里面的符号mod_polly.so

readelf -Ws mod_polly.so | grep _ZNK3Aws35AmazonSerializableWebServiceRequest7GetBodyEv

66: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND _ZNK3Aws35AmazonSerializableWebServiceRequest7GetBodyEv

590: 0000000000000000 0 NOTYPE 全球默认 UND _ZNK3Aws35AmazonSerializableWebServiceRequest7GetBodyEv

现在我对这里帖子的基本理解告诉我该符号存在于so文件中但Freeswitch无法找到或加载它。

现在这个错误很可能与混合 C/C++ 代码有关,但是看看这个并没有帮助我弄清楚如何修复它。

我不想构建Freeswitch来加载我的模块,我想我不应该这样做,因为这会使这个项目无法扩展。

我在这里想念什么?

PS:

readelf -Ws libaws-cpp-sdk-core.a | grep AmazonSerializableWebServiceRequest7GetBodyEv

165:0000000000000000 716 FUNC 全局默认值 42 _ZNK3Aws35AmazonSerializableWebServiceRequest7GetBodyEv

符号被定义在libaws-cpp-sdk-core.a其中是编译命令的一部分mod_polly.cpp