mirror of
https://gitee.com/milvus-io/milvus.git
synced 2025-12-30 07:25:37 +08:00
67 lines
2.1 KiB
C++
67 lines
2.1 KiB
C++
////////////////////////////////////////////////////////////////////////////////
|
|
// Copyright 上海赜睿信息科技有限公司(Zilliz) - All Rights Reserved
|
|
// Unauthorized copying of this file, via any medium is strictly prohibited.
|
|
// Proprietary and confidential.
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
#include "storage/IStorage.h"
|
|
#include "storage/s3/S3ClientWrapper.h"
|
|
#include <gtest/gtest.h>
|
|
#include <memory.h>
|
|
#include <fstream>
|
|
|
|
|
|
using namespace zilliz::milvus::engine;
|
|
|
|
TEST(s3_client_wrapper, CLIENT_WRAPPER_TEST) {
|
|
|
|
std::shared_ptr<storage::IStorage> storage_ptr = std::make_shared<storage::S3ClientWrapper>();
|
|
|
|
std::string ip_address = "127.0.0.1";
|
|
std::string port = "9000";
|
|
std::string access_key = "AKIAIOSFODNN7EXAMPLE";
|
|
std::string secret_key = "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY";
|
|
|
|
Status status = storage_ptr->Create(ip_address, port, access_key, secret_key);
|
|
ASSERT_TRUE(status.ok());
|
|
|
|
std::string filename = "/tmp/s3_test_file";
|
|
std::string bucket_name = "bucktname";
|
|
std::string object_name = "test_file";
|
|
|
|
status = storage_ptr->CreateBucket(bucket_name);
|
|
std::cout << status.IsAlreadyExist() << std::endl;
|
|
if (status.IsAlreadyExist()) {
|
|
status = storage_ptr->DeleteBucket(bucket_name);
|
|
status = storage_ptr->CreateBucket(bucket_name);
|
|
}
|
|
|
|
ASSERT_TRUE(status.ok());
|
|
|
|
std::ofstream ofile(filename);
|
|
std::stringstream ss;
|
|
for (int i = 0; i < 1024; ++i) {
|
|
ss << i;
|
|
}
|
|
ofile << ss.str() << std::endl;
|
|
ofile.close();
|
|
status = storage_ptr->UploadFile(bucket_name, object_name, filename);
|
|
ASSERT_TRUE(status.ok());
|
|
|
|
status = storage_ptr->DownloadFile(bucket_name, object_name, filename);
|
|
std::ifstream infile(filename);
|
|
std::string in_buffer;
|
|
infile >> in_buffer;
|
|
ASSERT_STREQ(in_buffer.c_str(), ss.str().c_str());
|
|
|
|
status = storage_ptr->DeleteFile(bucket_name, object_name);
|
|
ASSERT_TRUE(status.ok());
|
|
|
|
status = storage_ptr->DeleteBucket(bucket_name);
|
|
ASSERT_TRUE(status.ok());
|
|
|
|
status = storage_ptr->Close();
|
|
ASSERT_TRUE(status.ok());
|
|
}
|
|
|