C++操作minIO—获取桶和文件列表

使用aws-sdk-cpp的示例代码

#include <iostream>
#include <aws/core/http/HttpRequest.h>
#include <aws/s3/S3Client.h>
#include <aws/s3/model/CreateBucketRequest.h>
#include <aws/core/Aws.h>
#include <aws/core/auth/AWSCredentialsProvider.h>
#include <aws/s3/model/ListObjectsRequest.h>
#include <aws/s3/model/Object.h>

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

int main(int argc, char* argv[]) {
    // 初始化
    Aws::SDKOptions options;
    options.loggingOptions.logLevel = Aws::Utils::Logging::LogLevel::Debug;
    Aws::InitAPI(options);

    Aws::Client::ClientConfiguration cfg;
    cfg.endpointOverride = "127.0.0.1:9000"; 
    cfg.scheme = Aws::Http::Scheme::HTTP;
    cfg.verifySSL = false;

    Aws::Auth::AWSCredentials cred("txce123456", "txce123456");
    S3Client client(cred, cfg, 
    	Aws::Client::AWSAuthV4Signer::PayloadSigningPolicy::Always, false);

    auto response = client.ListBuckets();
    if (response.IsSuccess()) {
        auto buckets = response.GetResult().GetBuckets();
        for (auto iter = buckets.begin(); iter != buckets.end(); ++iter) {
            cout << iter->GetName() << "\t" << iter->GetCreationDate().ToLocalTimeString(Aws::Utils::DateFormat::ISO_8601) << endl;

			Aws::S3::Model::ListObjectsRequest objects_request;
			objects_request.WithBucket(iter->GetName());
			auto list_objects_outcome = client.ListObjects(objects_request);
			if (list_objects_outcome.IsSuccess())
			{
				Aws::Vector<Aws::S3::Model::Object> object_list =
					list_objects_outcome.GetResult().GetContents();

				for (auto const &s3_object : object_list)
				{
					std::cout << "Object:" << s3_object.GetKey() << std::endl;
				}
			}
			else
			{
				std::cout << "ListObjects error: " <<
					list_objects_outcome.GetError().GetExceptionName() << " " <<
					list_objects_outcome.GetError().GetMessage() << std::endl;
			}
        }
    } else {
        cout << "Error while ListBuckets " << response.GetError().GetExceptionName()
            << " " << response.GetError().GetMessage() << endl;
    }

    Aws::ShutdownAPI(options);
	getchar();
    return 0;
}
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值