Как открыть файл в GCS ведро в режиме добавления с помощью Python? - PullRequest
0 голосов
/ 09 октября 2018

Я посмотрел на все связанные вопросы, и все, что я могу найти, это загружать в GCS, а не писать.Я не пытаюсь загрузить файл или создать новый.Мне нужно открыть файл, расположенный в облачном хранилище Google в режиме добавления, т.е. создать его, если он не существует, и записать его в конец с помощью python.Если бы кто-нибудь мог указать мне правильное направление, я был бы очень благодарен.Метод загрузки заменяет мой файл каждый раз.Я попытался загрузить, добавить и затем заменить, но для этого требуется, чтобы файл изначально присутствовал в каталоге.Есть ли способ реализовать функциональность режима добавления в gcs?

PS: я пытаюсь сделать это в облачных функциях, а не на машине, оснащенной Cloud SDK

Ответы [ 2 ]

0 голосов
/ 09 октября 2018

Нет никакого способа сделать это, потому что объекты в GCS являются неизменяемыми.

С https://cloud.google.com/storage/docs/key-terms#immutability:

Объекты являются неизменяемыми, что означает, что загруженный объект не может изменяться в течение всего егосрок хранения.Срок хранения объекта - это время между успешным созданием (загрузкой) объекта и успешным удалением объекта.На практике это означает, что вы не можете вносить постепенные изменения в объекты, такие как операции добавления или усечения.Однако возможно перезаписать объекты, которые хранятся в облачном хранилище, и это происходит атомарно - до завершения новой загрузки старая версия объекта будет передана читателям, а после завершения загрузки новая версия объекта будетбыть подан читателям.Таким образом, одна операция перезаписи просто отмечает конец времени жизни одного неизменного объекта и начало времени жизни нового неизменного объекта.

0 голосов
/ 09 октября 2018

Используйте gcsfuse для монтирования корзины - тогда вы сможете получить доступ к файлу напрямую, как и к папке на вашем компьютере

https://cloud.google.com/storage/docs/gcs-fuse

...