【发布时间】:2021-07-01 07:14:20
【问题描述】:
我正在尝试使用我在 github 上找到的以下代码通过我的 AWS S3 存储桶下载文件:curl_bazek
我能够通过修复代码的一些问题来使其正常工作。硬编码 Access 和 Secret 密钥并将时间调整为 GMT。但我不知道如何下载文件。
这是我的输出,您可以看到 test.dll 位于此存储桶中:
AWSSecretKey=XXXXXXX
https://XXXXXX.s3.amazonaws.com
<?xml version="1.0" encoding="UTF-8"?>
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"><Name>atmaple</Name><Prefix>
</Prefix><Marker></Marker><MaxKeys>1000</MaxKeys><IsTruncated>false</IsTruncated><Contents><Key>test.dll</Key>
<LastModified>2021-06-29T16:18:40.000Z</LastModified>
<ETag>"XXXXXXXXXXXXX"</ETag>
<Size>45634048</Size><Owner><ID>XXXXXXXXXXXXX</ID></Owner><StorageClass>STANDARD</StorageClass></Contents></ListBucketResult>
更改网址会导致错误。
std::string hostS3Bucket = bucketName + ".s3.amazonaws.com/test.dll";
更改 curl url 也会导致相同的效果。
curl_easy_setopt(curl, CURLOPT_URL, ("https://" + hostS3Bucket + "/test.dll").c_str());
错误:
The specified bucket is not valid.
【问题讨论】:
-
您可能想使用:AWS SDK for C++
-
@JohnRotenstein 是的,该方法在 SDK for C++ 中更加简洁,感谢您的建议。我能够轻松解决我的问题。
标签: c++ amazon-web-services amazon-s3 c++17 libcurl