2017-02-14 14:20:00 +01:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#if ENABLE_S3
|
|
|
|
|
2020-05-27 22:56:34 +02:00
|
|
|
#include "libutil/ref.hh"
|
2017-02-14 14:20:00 +01:00
|
|
|
|
|
|
|
namespace Aws {
|
|
|
|
namespace Client {
|
|
|
|
class ClientConfiguration;
|
|
|
|
}
|
|
|
|
} // namespace Aws
|
|
|
|
namespace Aws {
|
|
|
|
namespace S3 {
|
|
|
|
class S3Client;
|
|
|
|
}
|
|
|
|
} // namespace Aws
|
|
|
|
|
|
|
|
namespace nix {
|
|
|
|
|
|
|
|
struct S3Helper {
|
|
|
|
ref<Aws::Client::ClientConfiguration> config;
|
|
|
|
ref<Aws::S3::S3Client> client;
|
|
|
|
|
2018-12-07 23:38:24 +01:00
|
|
|
S3Helper(const std::string& profile, const std::string& region,
|
|
|
|
const std::string& scheme, const std::string& endpoint);
|
2017-02-14 14:20:00 +01:00
|
|
|
|
2018-12-07 23:38:24 +01:00
|
|
|
ref<Aws::Client::ClientConfiguration> makeConfig(const std::string& region,
|
|
|
|
const std::string& scheme,
|
|
|
|
const std::string& endpoint);
|
2017-02-14 14:20:00 +01:00
|
|
|
|
|
|
|
struct DownloadResult {
|
|
|
|
std::shared_ptr<std::string> data;
|
|
|
|
unsigned int durationMs;
|
|
|
|
};
|
|
|
|
|
|
|
|
DownloadResult getObject(const std::string& bucketName,
|
|
|
|
const std::string& key);
|
|
|
|
};
|
|
|
|
|
|
|
|
} // namespace nix
|
|
|
|
|
|
|
|
#endif
|