问题标签 [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.
c++ - aws-sdk-cpp - 在 Ubuntu 中未定义对 Aws::InitAPI 的引用
我正在尝试按照https://docs.aws.amazon.com/sdk-for-cpp/v1/developer-guide/basic-use.html上的开发人员指南在 Ubuntu 中运行 aws-sdk-cpp 。
我所做的是:
1.安装sdk
2.创建测试文件test.cpp
3. 编译
然后我得到了错误:
我的问题:
如何解决此问题以编译和运行 aws-sdk-cpp?我错过了任何安装步骤吗?
谢谢!
c++ - AWS SDK 静态链接:libcrypto.so.1.0.0:无法打开共享对象文件
我正在尝试使用静态链接为 c++ 构建 AWS 开发工具包,因此我可以将其用作 AWS Lambda 函数中的二进制文件。
我采取的步骤如下:
- git 克隆https://github.com/aws/aws-sdk-cpp.git。
- mkdir 构建 && cd 构建
- cmake .. -DBUILD_SHARED_LIBS=OFF -DBUILD_ONLY="s3" -DENABLE_TESTING=OFF -DFORCE_SHARED_CRT=OFF (在 aws-cpp-sdk-s3 目录中创建了libaws-cpp-sdk-s3.a )
- 现在我的源 CMakeLists.txt 如下所示
我知道 AWS SDK for c++ 需要 OpenSSL,我已经在 CMakeLists 中添加了它,当我在Cmake命令之后运行make时,tt 显示
所以项目能够找到静态 libcrypto。但是当我在 AWS lambda 上部署它时,它 在加载共享库时出现错误错误: libcrypto.so.1.0.0: cannot open shared object file: No such file or directory\n。
谁能告诉我如何调试这个或者如果我遗漏了什么?我尝试搜索它,但找不到任何对静态链接有用的东西。
这是我的execute_code.cpp:
如果有人能告诉我如何在 AWS lambda 上部署共享库,那也会很有帮助。
编辑:我能够通过在 Amazon Linux 而不是 Ubuntu 机器上构建来解决这个问题。
amazon-s3 - 使用 c++ S3 SDK,带有 Minio 的 ListObjecsV2 不返回任何结果
下面是一些将对象放入 s3 存储桶的代码,将其取回,然后尝试列出该存储桶。put 和 get 都可以正常工作,但列出存储桶不会返回任何键(但不会出错)。我可以使用 golang api 和相同的参数(存储桶名称和空前缀)列出存储桶。为什么不列出存储桶?
我使用 minio 作为我的对象存储,但使用 amazon s3 它工作正常
json - 在 Linux 上与 libaws-cpp-sdk-core.so 链接的未解析符号
我正在 Linux 上构建 Java 应用程序并通过 JNI 调用 CPP 代码。当我将我的 CPP 对象与 libaws-cpp-sdk-core.so 链接时,我得到未解析的符号:
Aws::Utils::Json::JsonValue::JsonValue(std::__cxx11::basic_string, std::allocator > const&)
aws-spp-sdk-core.so 中的符号几乎匹配: T Aws::Utils::Json::JsonValue::JsonValue(std::__cxx11::basic_string, Aws::Allocator > const&)
除了它是 Aws::Allocator 而不是 std::allocator 所以我尝试同时传递 AWSD ::String 和 std::string 但没有帮助
问题 sysmbol 来自以下调用 AWS::Utils::Json::JsonValue() 的代码:
JNIEXPORT jstring JNICALL Java_CCBJNI_labToMix(JNIEnv * env, jobject thisObj, jstring jcolor) {
}
我已经在 Linux 上从源代码构建了 AWSSDK,并尝试在所有生成的 .so 库中进行链接,我已经安装了先决条件: $sudo apt-get install libcurl4-openssl-dev libssl-dev uuid-dev zlib1g-dev libpulse-dev works在使用 nuget 包管理器的 Windows 上,其他 AWS 调用正在工作,但不是这个。
谢谢你的帮助
c++ - 在 QT for MacOs 和 windows 中创建安装程序的过程
我正在为我的 C++ QT QML 程序创建安装程序。我正在尝试为要测试的程序制作安装程序,但无法理解我到底需要做什么。我只有一个外部依赖项,即 aws-cpp-sdk,我可以在开发环境中编译并链接到 QT。我想知道在这种情况下该怎么做。根据我对 QT 安装程序框架文档的理解,有两种不同的方式,离线和在线。由于是离线的,我假设您只是将所有软件包和必要的资源与安装程序一起放在一个 zip 中,而在线时它将从在线存储库中提取。所以我的主要问题是,
1.) 我在哪里可以获得这个“静态”版本的 qt 以及它的所有 QML 小部件等。
2.) 我应该如何制作离线安装程序,我是否需要制作某种脚本来 cmake 并安装所有必要的文件?
3.) 我可以在 github 上托管这些在线存储库吗?
c++ - 如何使用 C++ SDK 修复同步调用的 aws lambda 超时?
当我调用我的 lambda 函数时,执行需要 1 到 15 秒。如果我通过 C++ SKD 调用该函数,我会超时。这些超时似乎在几秒钟后发生(这只是人为判断,我实际上并没有计时)。
问题:我如何告诉 SDK 等待慢 lambdas 返回而不是超时?
不起作用的事情:
在JS SDK 中,您可以在 HTTP 设置中进行更改。这在 C++ SDK HTTPOptions中没有这样的选项。
给 lambda 客户端一个更大的 connectionTimeoutMS(套接字超时)的配置并没有帮助。此外,客户端的 httpRequestTimeoutMs 默认设置为 0,这意味着它将永远等待。
我正在使用同步请求,它似乎没有额外的超时选项。
附加信息:
我正在使用单个客户端并行运行多个请求。
如果我使用异步请求,也会发生错误。
有关的:
cmake - 无法构建 AWS 开发工具包 CPP 示例。Cmake 找不到 AWSSDKConfig.cmake,但该文件存在于我的磁盘上
我使用亚马逊文档中给出的说明在我的 Ubuntu 机器上安装了适用于 C++ 的 AWS 开发工具包:
https://docs.aws.amazon.com/sdk-for-cpp/v1/developer-guide/setup.html
我能够毫无错误地编译 SDK。
然后我按照 README 为 C++ 构建示例。当我运行 Cmake 时,出现以下错误:
但是AWSSDKConfig.cmake肯定在我的系统上:
所以我尝试使用 CMake CMAKE_PREFIX_PATH 命令行参数直接添加配置文件的路径:
但是后来我收到了这组错误消息:
我想我在这一点上一定是在做一些根本错误的事情。我怎样才能使这项工作?
c++ - Aws::S3::S3Client 构造函数非常慢
我正在尝试使用 AWS C++ SDK 为 S3 生成签名 URL,但是Aws::S3::S3Client
构造函数似乎很慢。在以下示例中:
编译:
1
和之间有很长的延迟(至少 5 秒)2
。这是什么原因造成的?
该库是通过以下方式构建和安装的:
curl - 将 AWS cpp sdk 用于 Google 云时出现 Curl 超时
我有一个安装了 aws cpp sdk 的 Debian 9 客户端。我正在将此 sdk 用于 Google Cloud Storage。sdk 使用 curl 向云端发出请求。我有一个测试程序,可以将一堆 PUT 放到云端。我观察到最初有几个 PUT 成功,然后我开始看到 PUT 的 curl 超时错误。以下是来自 AWS sdk 的日志,表明 curl 请求已超时:
我的一些观察:
- 我对 GET 没有这个问题。
- 我只在使用 Debian 时看到这个问题。当我尝试使用 Ubuntu 18.04 的主机时,它运行良好。
- 当我使用 HTTP 和端口 80 而不是 HTTPS 和端口 443 时,我没有看到这个问题。
任何想法可能导致卷曲超时?
c++ - 如何使用 gmock 模拟 AWS::Transfer::TransferManager 类?
我正在使用 AWS C++ SDK 在 AWS 上下载/上传文件AWS::Transfer::TransferManager
。我想对使用TransferManager
并需要模拟的客户端类进行单元测试TransferManager
。AWSTransferManager
类是具体类,而不是抽象类。我如何嘲笑它?