AWS C++ S3 SDK PutObjectRequest 无法连接到端点

2024-02-07

在使用 AWS C++ SDK 时,我遇到了一个问题,即尝试执行 PutObjectRequest 时会抱怨上传超过 ~400KB 时“无法连接到端点”。

Aws::Client::ClientConfiguration clientConfig;
clientConfig.scheme = Aws::Http::Scheme::HTTPS;
clientConfig.region = Aws::Region::US_EAST_1;

Aws::S3::S3Client s3Client(clientConfig);

Aws::S3::Model::PutObjectRequest putObjectRequest;
putObjectRequest.SetBucket("mybucket");
putObjectRequest.SetKey("mykey");

typedef boost::iostreams::basic_array_source<char> Device;
boost::iostreams::stream_buffer<Device> stmbuf(compressedData, dataSize);
std::iostream *stm = new std::iostream(&stmbuf);

putObjectRequest.SetBody(std::shared_ptr<Aws::IOStream>(stm));
putObjectRequest.SetContentLength(dataSize);

Aws::S3::Model::PutObjectOutcome outcome = s3Client.PutObject(putObjectRequest);

只要我的数据小于 ~400KB,它就会上传到 S3 上的文件中,但超出此范围,它就无法连接到端点。我应该能够在一个 PutObjectRequest 中上传最多 5GB 的数据。

有什么想法吗?

Edit:

响应@JonathanHenson的评论,AWS日志重复显示此超时错误:

[DEBUG] 2016-08-04 13:42:03 AWSClient [0x700000081000] Request Successfully signed
[TRACE] 2016-08-04 13:42:03 CurlHttpClient [0x700000081000] Making request to https://s3.amazonaws.com/mybucket/myfile
[TRACE] 2016-08-04 13:42:03 CurlHttpClient [0x700000081000] Including headers:
[TRACE] 2016-08-04 13:42:03 CurlHttpClient [0x700000081000] content-length: 3151261
[TRACE] 2016-08-04 13:42:03 CurlHttpClient [0x700000081000] content-type: binary/octet-stream
[TRACE] 2016-08-04 13:42:03 CurlHttpClient [0x700000081000] host: s3.amazonaws.com
[TRACE] 2016-08-04 13:42:03 CurlHttpClient [0x700000081000] user-agent: aws-sdk-cpp/0.13.9 Darwin/15.6.0 x86_64
[DEBUG] 2016-08-04 13:42:03 CurlHandleContainer [0x700000081000] Attempting to acquire curl connection.
[DEBUG] 2016-08-04 13:42:03 CurlHandleContainer [0x700000081000] Returning connection handle 0x10b09cc00
[DEBUG] 2016-08-04 13:42:03 CurlHttpClient [0x700000081000] Obtained connection handle 0x10b09cc00
[TRACE] 2016-08-04 13:42:03 CurlHttpClient [0x700000081000] HTTP/1.1 100 Continue

[TRACE] 2016-08-04 13:42:03 CurlHttpClient [0x700000081000] 

[ERROR] 2016-08-04 13:42:06 CurlHttpClient [0x700000081000] Curl returned error code 28
[DEBUG] 2016-08-04 13:42:06 CurlHandleContainer [0x700000081000] Releasing curl handle 0x10b09cc00
[DEBUG] 2016-08-04 13:42:06 CurlHandleContainer [0x700000081000] Notifying waiting threads.
[DEBUG] 2016-08-04 13:42:06 AWSClient [0x700000081000] Request returned error. Attempting to generate appropriate error codes from response
[WARN] 2016-08-04 13:42:06 AWSClient [0x700000081000] Request failed, now waiting 12800 ms before attempting again.
[DEBUG] 2016-08-04 13:42:19 InstanceProfileCredentialsProvider [0x700000081000] Checking if latest credential pull has expired.

最终为我解决这个问题的是设置请求超时。请求超时需要足够长才能完成整个传输。如果您要在较慢的互联网连接上传输大文件,请确保请求超时足够长,以允许这些文件传输。

Aws::Client::ClientConfiguration clientConfig;
clientConfig.scheme = Aws::Http::Scheme::HTTPS;
clientConfig.region = Aws::Region::US_EAST_1;
clientConfig.connectTimeoutMs = 30000;
clientConfig.requestTimoutMs = 600000;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AWS C++ S3 SDK PutObjectRequest 无法连接到端点 的相关文章

随机推荐

  • 使用管理器和向量时出现内存错误

    我想创建一个包含多个对象的管理器 并且必须使用它才能实际创建对象 这些对象将其信息保存在智能指针中 这就是我的实现方式 struct Object std shared ptr
  • 使用按钮事件 tkinter 在画布中创建图像

    我需要向 Tkinter gui 中的按钮添加一个事件 该事件将在画布中创建图像 我该怎么做 谢谢大家 它有效 但我需要获取同一图像文件的动态数字图像 但每次我创建新图像时 旧图像都会被垃圾收集 我想不出该怎么办 我想在画布上有同一图像的多
  • Java:Eclipse 和 javac 中的泛型处理方式不同

    说我们有课 public class Entry
  • 如何在 php / Laravel 5 中解析 SimpleXMLElement?

    我使用 Guzzle 向后端的外部 API 发出 XML 请求 这是我创建 Guzzle 客户端的地方 client new Client GuzzleHttp Client 这是我提出请求的地方 request client gt req
  • 无法将ubi附加到mtd分区

    我们在基于 DM365 的定制板中使用 MT29F8G08ABABA 我们使用的是 NAND 启动 RootFS采用UBIFS格式 Below is basic achitecture of the NAND 我正在使用以下命令来创建 ub
  • 排队操作(不是效果)在一段时间后执行。

    我想知道是否有一种好的方法可以将 jQuery 函数排队以在设定的时间后执行 这不会暂停其他函数的执行 只会暂停链中后续函数的执行 也许我设想的一个例子可以说明 alert show wait 5000 lt this bit hide 我
  • 逐字符绘制文本时的字距调整问题

    我正在尝试逐个字符地绘制字符串 以便为由文本组成的形状添加灯光效果 while i line length c line substring i i 1 cWidth g getFontMetrics stringWidth c g dra
  • 数据读取器如何工作?

    我在想如果没有连接到 SQLServer SQLDataReader 不应该工作 我实验了这个场景 我执行 ExecuteReader 然后停止 SQLServer 服务并尝试迭代 DataReader 我期待的是一个例外 但它却给出了一个
  • 如何将 NestJS 中的服务注入到 typeorm 存储库中?

    我有一个UserRepository它处理在数据库前面创建 验证用户 我想对用户的密码执行哈希和验证 因此我为此创建了一个单独的服务 尝试遵循单一责任原则 其声明如下 Injectable export default class Hash
  • jeditable 意外触发嵌套项目上的 Draggable

    我使用jquery ui的draggable进行拖放 并且可编辑的 http www appelsiini net projects jeditable用于内联编辑 当我拖放一个也可编辑的元素时 在它被放置后 jeditable 立即启动并
  • 防止/限制方法继承

    我有一个应用程序 其中许多对象都扩展一个抽象类 该类定义了类似的方法create edit retrieve and delete 由于每个子类对这些函数都使用相同的逻辑 因此抽象类定义了默认行为 并且在需要增强的少数情况下 子类可以覆盖或
  • Bootstrap 导航栏垂直显示而不是水平显示

    我正在使用 CodePen 开发一个项目 并使用 bootstrap 来制作导航栏 但由于某种原因 它是垂直显示而不是水平显示 即使我从W3学校 https www w3schools com bootstrap bootstrap nav
  • maven中的“pom”包装是什么?

    我得到了一个 Maven 项目来编译并部署在 tomcat 服务器上 我今天之前从未使用过 Maven 但我已经在谷歌上搜索了很多 貌似是顶级水平pom xml该项目中的文件的打包类型设置为pom 之后我应该做什么mvn install部署
  • Java查询数据库后返回一个数组

    我必须查询 MSSQL 数据库 并且希望查询结果作为 Array 或 ArrayList 返回 我现在有这个代码 但它给出了一个错误 我有到数据库的连接 所以这不是问题 public ArrayList
  • 在 Linux 上嗅探数据包时过滤网络堆栈中的数据包?

    我有一个问题要问底层网络 Linux 专家 我必须为我大学的安全项目构建两个工具 第一个工具是 ARP 中毒攻击者 它会毒害远程主机的 ARP 缓存 以便检索他发送到另一台主机的数据 我使用原始套接字用 C 语言编写了这个工具 它工作得很好
  • 选择数据表中的所有 jsf primefaces

    我正在尝试创建一个全选按钮或复选框 单击该按钮或复选框时 所有 selectbooleanCheck 框都会被选中 有没有直接简单的方法 我开始创建 selectcheckbox 当更改时它将 selectAll 谢谢
  • 如何在输出文件中抑制 stargazer() 信息

    我正在使用stargazer将 R 数据帧输出为乳胶代码的包 library stargazer stargazer mtcars 这是输出 Table created by StarGazer v 3 0 1 by Marek Hlava
  • 如何重新初始化 jQuery DataTables 上的数据排序?

    我在我的项目中使用 jQuery Datatables 并且通过使用属性在列上提供了 自定义值 排序data sort如此处所述 https datatables net examples advanced init html5 data
  • Android Studio“提取方法”快捷键 Ctrl+Alt+M 不起作用

    The android studio shortcut for extract function is not working for me If I press Ctrl Alt M nothing is happening and wh
  • AWS C++ S3 SDK PutObjectRequest 无法连接到端点

    在使用 AWS C SDK 时 我遇到了一个问题 即尝试执行 PutObjectRequest 时会抱怨上传超过 400KB 时 无法连接到端点 Aws Client ClientConfiguration clientConfig cli