Я пытаюсь создать соединение с файлом в хранилище Google, но мне сложно реализовать ObjectWriteStream
. Проблема в том, что если я создаю ObjectWriteStream
для файла, который уже находится в облаке, он удалит старый файл и начнет с начала. Вот пример кода
namespace gcs = google::cloud::storage;
void test(gcs::Client client, string bucket_name, string file_name){
auto writeCon = client.WriteObject(bucket_name.c_str(), file_name.c_str());
writeCon << "This is a test";
writeCon.Close();
}
Что мне нужно сделать, чтобы ObjectWriteStream
не удалял мой файл и не загружал данные из нужного мне места (например, добавлял данные в файл)? Я попытался вызвать стандартную функцию ostream seekp
, чтобы установить местоположение потока. Это не будет работать, так как ObjectWriteStream
не поддерживает его. Как ни странно, ObjectReadStream
также не поддерживает эту операцию, но у него есть опция gcs::ReadRange(start, end)
, чтобы установить начальное местоположение. Поэтому мне интересно, есть ли нестандартный способ установки позиции для ObjectWriteStream
. Буду признателен, если кто-нибудь сможет мне посоветовать.