Клиентская библиотека Google Cloud Storage-установите acl на "public-read" и " Bucket-owner-full-control"

для appengine, созданных файлов в Google cloud storage, владелец ведра не имеет разрешения на полный контроль.

Я не могу установить acl таким образом: (чтобы иметь как публичное чтение, так и полный контроль владельца )

GcsFileOptions options = new GcsFileOptions.Builder().acl("bucket-owner-full-control;public-read").build();

каково решение здесь?

1 ответов


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

одной из возможностей было бы изменить ACL по умолчанию для новых объектов в вашем ведре, а затем не устанавливать ACLs явно вообще. Вы можете добавить разрешение на чтение по умолчанию для анонимных пользователей довольно легко с помощью gsutil:

$> gsutil defacl ch -g AllUsers:R gs://mybucket

(Примечание: есть аналогичная команда, gsutil acl, который управляет ведром или объектом ACL, а не ACL по умолчанию для вновь созданных объектов в ведре. Легко спутать два)

N. B. Это повлияет на все объекты, созданные в этом ведре, которые не задают ACL, что может быть неуместно, если вы также создаете другие объекты в этом ведре для других цели и полагаются на определенный ACL по умолчанию.