#pragma once #if ENABLE_S3 #include "libutil/ref.hh" namespace Aws { namespace Client { class ClientConfiguration; } } // namespace Aws namespace Aws { namespace S3 { class S3Client; } } // namespace Aws namespace nix { struct S3Helper { ref config; ref client; S3Helper(const std::string& profile, const std::string& region, const std::string& scheme, const std::string& endpoint); ref makeConfig(const std::string& region, const std::string& scheme, const std::string& endpoint); struct DownloadResult { std::shared_ptr data; unsigned int durationMs; }; DownloadResult getObject(const std::string& bucketName, const std::string& key); }; } // namespace nix #endif