OrangePi3588Media/plugins/alarm/uploaders/uploader_factory.cpp
2026-01-12 21:51:36 +08:00

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