40 lines
1.2 KiB
C++
40 lines
1.2 KiB
C++
#pragma once
|
|
|
|
#include "uploader_base.h"
|
|
|
|
namespace rk3588 {
|
|
|
|
class MinioUploader : public IUploader {
|
|
public:
|
|
bool Init(const SimpleJson& config) override;
|
|
UploadResult Upload(const std::string& key,
|
|
const uint8_t* data,
|
|
size_t size,
|
|
const std::string& content_type = "") override;
|
|
std::string Type() const override { return "minio"; }
|
|
|
|
private:
|
|
std::string endpoint_;
|
|
std::string bucket_;
|
|
std::string access_key_;
|
|
std::string secret_key_;
|
|
std::string region_;
|
|
// Recommended: use a presign service to return per-object presigned PUT URLs.
|
|
// When set, Upload() will:
|
|
// 1) POST to presign_endpoint_ with {bucket,key,content_type,size}
|
|
// 2) PUT the payload to returned upload_url
|
|
// 3) return public_url (if present) or upload_url
|
|
std::string presign_endpoint_;
|
|
int presign_timeout_ms_ = 3000;
|
|
bool use_ssl_ = false;
|
|
|
|
int max_retries_ = 0;
|
|
int retry_backoff_ms_ = 200;
|
|
int retry_backoff_max_ms_ = 2000;
|
|
int retry_jitter_ms_ = 50;
|
|
int upload_timeout_sec_ = 30;
|
|
int upload_connect_timeout_ms_ = 5000;
|
|
};
|
|
|
|
} // namespace rk3588
|