Ошибка ACL в папках GCS при создании в процессе загрузки файлов - PullRequest
0 голосов
/ 18 сентября 2018

Когда я создаю папку в корзине Google Cloud Storage в веб-интерфейсе, я могу установить и получить ACL этой папки.

gsutil acl ch -u user@domain.com:R gs://testbucket/my-folder/
gsutil acl get gs://testbucket/my-folder/

Когда папка создается из терминала (Linux или Mac OS) Я не могу получить или установить ACL для папки, она всегда возвращает:

CommandException: URL-адреса не совпадают

Кроме того, это происходит с Python API.

Есть ли у вас какие-либо предложения по работе с папками, созданными из локальной ОС?

Ответы [ 3 ]

0 голосов
/ 19 сентября 2018

Сначала вы должны проверить и посмотреть, существует ли в вашем ведре объект с именем folder/.Запустите эти команды Bash, которые сделают «плоский» список с префиксом вашего сегмента (то есть не будут пытаться использовать / в качестве разделителя для разделения компонентов пути, который использует префиксы для создания иллюзии реальных каталогов):

$ BUCKET=my-bucket-name-here
$ gsutil ls gs://${BUCKET}/my-folder** | grep "gs://${BUCKET}/my-folder/\$"

Если ваши выходные данные содержат одну строку, этот объект "my-folder /" существует.Если выходные данные пустые, то выданная вами ошибка верна, и вы можете выполнить эту команду без части pipe-to-grep, чтобы увидеть, какие объекты действительно существуют с префиксом «my-folder» в вашем контейнере.

Предполагая, что объект существует, команды, которые вы связали выше, должны работать (по крайней мере, они работают для меня в версии 4.34 gsutil).Если вы используете более старую версию gsutil, попробуйте обновить ее и сделать еще один снимок.

0 голосов
/ 28 сентября 2018

Проблема была с символами кодирования. Из ОС символ пробела переводится в представление '\ xa0'. Если папка создается из веб-интерфейса, символ пробела в терминале - ''.

0 голосов
/ 19 сентября 2018

Это может быть связано с тем, что, согласно этой документации , при использовании Cloud Console и создании папки создается объект, заканчивающийся символом "/", поскольку файлы, оканчивающиеся таким символомне допускаются в Linux и MacOS.Кроме того, вы можете найти больше информации о том, как подкаталоги Cloud Storage работают в этом документе

Если вы считаете, что это не работает должным образом, я предлагаю открыть средство отслеживания общедоступных проблем объясняя это поведение должным образом.

...