【发布时间】:2020-06-15 17:54:25
【问题描述】:
namespace gcs = google::cloud::storage;
using ::google::cloud::StatusOr;
auto client_options =
gcs::ClientOptions::CreateDefaultClientOptions();
auto client = gcs::internal::CurlClient::Create(*client_options);
StatusOr<std::unique_ptr<gcs::internal::ResumableUploadSession>> session;
std::uint64_t total_size = 0;
void performresumableupload(std::string& bucket_name,
std::string& object_name,
std::string& data, std::uint64_t data_size, bool isFinal) {
gcs::internal::ResumableUploadRequest request(bucket_name, object_name);
StatusOr<gcs::internal::ResumableUploadResponse> response;
total_size += data_size;
if (!isFinal) {
session = client->CreateResumableSession(request);
response = (*session)->UploadChunk(data);
}
else {
std::cout << "Uploading total size " << total_size << "\n";
response = (*session)->UploadFinalChunk(data, total_size);
}
std::cout << "Response Status: " << response.status() << "\n";
}
我正在使用 curlclient 以 5MB 的块(256K 的倍数)上传一个巨大的对象,它可以工作。但是,我希望能够在调用 UploadFinalChunk 并提交对象之前取消此操作并删除部分上传的块。通过查看文档here,我看到要取消可恢复的上传请求,我必须发送一个删除请求。但是,我在 CurlClient 中看不到任何可以帮助我做同样事情的方法。感谢任何帮助。
【问题讨论】:
标签: google-cloud-storage google-cloud-cpp