3

バケットに対する ACL 権限は次のとおりです。

<?xml version="1.0" ?>
<AccessControlList>
    <Owner>
        <ID>00b4903a97dfaa16aff41eeb91e90b5fb524f1daf0d88fceca29b6f647412e8d</ID>
    </Owner>
    <Entries>
        <Entry>
            <Scope type="GroupById">
                <ID>00b4903a97dfaa16aff41eeb91e90b5fb524f1daf0d88fceca29b6f647412e8d</ID>
            </Scope>
            <Permission>FULL_CONTROL</Permission>
        </Entry>
        <Entry>
            <Scope type="AllUsers"/>
            <Permission>READ</Permission>
        </Entry>

<Entry>
   <Scope type="UserByEmail">
      <EmailAddress>
         my_app@appspot.gserviceaccount.com
      </EmailAddress>
   </Scope>
   <Permission>
      WRITE
   </Permission>
</Entry>

    </Entries>
</AccessControlList>

しかし、このバケットに新しいファイルをアップロードすると、デフォルトでは共有されません。

AllUsers パーミッションが読み取りに設定されているため、そうすべきだと思います

4

2 に答える 2

10

バケットのアクセス許可とオブジェクトのアクセス許可を混同していると思います。バケットは公開されているため、誰でもバケットの内容を一覧表示できますが、アップロードするオブジェクトには独自の権限セットがあります。アップロードされたオブジェクトを一般公開したい場合は、それを明示的に有効にする必要があります。次のコマンドを使用してそれを行うことができます。

gsutil setacl public-read gs://bucket/object

または、次のコマンドを使用して、包含バケットのデフォルトのオブジェクト ACL を一般に読み取り可能に設定することもできます。

gsutil setdefacl public-read gs://bucket

後者の利点は、そのバケットにアップロードされたすべてのオブジェクトが、含まれているバケットから公開可読性を自動的に継承することです。

于 2012-10-28T06:49:00.790 に答える
4

次の場合: "defacl" に対して非推奨のエイリアス "setdefacl" を使用しています ...

使用するgsutil defacl set public-read gs://bucketname

于 2014-11-14T00:39:24.463 に答える