safesight-edge/plugins/alarm/uploaders/uploader_factory.cpp
2025-12-26 16:58:18 +08:00

28 lines
689 B
C++

#include "uploader_base.h"
#include "local_uploader.h"
#include "minio_uploader.h"
#include <iostream>
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)) {
std::cerr << "[CreateUploader] failed to init uploader type=" << type << "\n";
return nullptr;
}
return uploader;
}
} // namespace rk3588