【问题标题】:Uploading file to AWS using C++ SDK使用 C++ SDK 将文件上传到 AWS
【发布时间】:2017-06-22 02:29:44
【问题描述】:

每当我运行我的程序时,我都会收到错误“无法连接到端点”。但我知道我可以连接到该存储桶,因为我可以使用相同的配置和 s3Client 成功下载该存储桶中的文件。它卡在 PutObject() 行上。

这里是代码。

const String KEY = "test2.txt";
const String BUCKET = "savefiles2017";


const String fileName = "test2.txt";

Client::ClientConfiguration config;
config.region = Region::US_WEST_2;
config.scheme = Http::Scheme::HTTPS;

S3Client s3Client(Auth::AWSCredentials("XXXXXX", "YYYYYY"), config); 

//putting something into s3
PutObjectRequest putObjectRequest;
putObjectRequest.WithBucket(BUCKET).WithKey(KEY);

auto requestStream = MakeShared<FStream>("PutObjectInputStream", fileName.c_str(), ios_base::in);

putObjectRequest.SetBody(requestStream);

auto putObjectOutcome = s3Client.PutObject(putObjectRequest);

if (putObjectOutcome.IsSuccess())
{
    cout << "Put object succeeded" << endl;
}
else
{
    cout << "Error while putting Object " << putObjectOutcome.GetError().GetExceptionName() <<
        " " << putObjectOutcome.GetError().GetMessage() << endl;
}

这些也是我正在使用的包含

#include <string>
#include <iostream>
#include <fstream>
using namespace std;
#include <aws/core/Aws.h>
#include <aws/core/auth/AWSCredentialsProvider.h>
#include <aws/s3/S3Client.h>
#include <aws/s3/model/PutObjectRequest.h>
#include <aws/s3/model/GetObjectRequest.h>
#include <aws/core/utils/memory/stl/AWSStringStream.h> 


using namespace Aws;
using namespace Aws::S3;
using namespace Aws::S3::Model;

任何帮助将不胜感激。

【问题讨论】:

  • 什么版本的SDK?您可以发布跟踪日志吗?
  • 我正在使用 NuGet,因此 AWSSDKCPP-Core 的版本为 1.0.128,AWSSDKCPP-S3 的版本为 1.0.20060301.128。如何找到跟踪日志?我也在 Visual Studios 上运行。
  • 如果我上传一个空文件,它似乎也可以工作。但是,如果我将任何内容放入文件中,它就不会上传。

标签: c++ amazon-web-services amazon-s3 aws-sdk-cpp


【解决方案1】:

我想出了如何解决它。我不得不换行

auto requestStream = MakeShared<FStream>("PutObjectInputStream", fileName.c_str(), ios_base::in);

auto requestStream = MakeShared<FStream>("PutObjectInputStream", fileName.c_str(), ios_base::in | ios_base::binary);

所以我只需要添加 ios_base::binary 的额外标志

【讨论】:

    猜你喜欢
    • 2017-01-10
    • 2019-12-06
    • 1970-01-01
    • 2014-05-27
    • 2019-12-16
    • 2018-04-05
    • 2021-05-05
    • 2020-03-17
    • 1970-01-01
    相关资源
    最近更新 更多