如何用C++语言写一个从对象存储肿下载文件的工具,并使用Cmake管理
时间: 2024-02-06 17:08:53 浏览: 25
以下是一个简单的C++程序,用于从对象存储中下载文件:
```
#include <iostream>
#include <fstream>
#include <curl/curl.h>
using namespace std;
// 定义回调函数,用于将下载内容写入文件中
static size_t write_callback(char *ptr, size_t size, size_t nmemb, void *userdata) {
size_t written = fwrite(ptr, size, nmemb, (FILE *)userdata);
return written;
}
// 定义下载函数
void download_file(const string &url, const string &filename) {
CURL *curl;
CURLcode res;
FILE *fp;
curl = curl_easy_init();
if (curl) {
fp = fopen(filename.c_str(), "wb");
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp);
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
fclose(fp);
}
}
int main(int argc, char **argv) {
string url = "your_object_storage_url";
string file_to_download = "file_to_download";
string local_filename = "local_filename";
// 下载文件
download_file(url + "/" + file_to_download, local_filename);
return 0;
}
```
然后,您可以使用CMake来管理您的项目。以下是一个基本的CMakeLists.txt文件:
```
cmake_minimum_required(VERSION 3.10)
project(object_storage_downloader)
set(CMAKE_CXX_STANDARD 11)
find_package(CURL REQUIRED)
add_executable(object_storage_downloader main.cpp)
target_link_libraries(object_storage_downloader CURL)
```
在下载完文件后,您可以在本地文件系统中找到下载的文件。