28 lines
683 B
C++
28 lines
683 B
C++
#include "uploader_base.h"
|
|
#include "local_uploader.h"
|
|
#include "minio_uploader.h"
|
|
|
|
#include "utils/logger.h"
|
|
|
|
namespace rk3588 {
|
|
|
|
std::unique_ptr<IUploader> CreateUploader(const SimpleJson& config) {
|
|
std::string type = config.ValueOr<std::string>("type", "local");
|
|
|
|
std::unique_ptr<IUploader> uploader;
|
|
if (type == "minio" || type == "s3") {
|
|
uploader = std::make_unique<MinioUploader>();
|
|
} else {
|
|
uploader = std::make_unique<LocalUploader>();
|
|
}
|
|
|
|
if (uploader && !uploader->Init(config)) {
|
|
LogError("[CreateUploader] failed to init uploader type=" + type);
|
|
return nullptr;
|
|
}
|
|
|
|
return uploader;
|
|
}
|
|
|
|
} // namespace rk3588
|