2012-10-24 83 views
2

我的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> 
     [email protected] 
     </EmailAddress> 
    </Scope> 
    <Permission> 
     WRITE 
    </Permission> 
</Entry> 

    </Entries> 
</AccessControlList> 

但是,當我在這個鬥上傳新文件默認情況下不共享。

我想我應該是因爲設置爲只讀

回答

9

我想你混淆了水桶權限和對象權限AllUsers的權限。存儲桶是公開可讀的,因此每個人都可以列出存儲桶的內容,但是您上傳的對象具有自己的一組權限。如果你想要一個上傳的對象是公共可讀的,你需要明確地啓用它。你可以使用下面的命令來做到這一點:

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

或者,您可以設置默認對象ACL爲含桶是公開可讀,使用這個命令:

gsutil setdefacl public-read gs://bucket 

的優勢後者是每個上傳到該桶的對象都會自動從包含的桶中繼承公共可讀性。

+1

只是'的gsutil SETACL公衆閱讀的GS://桶/對象'不適合我。它會重定向到google身份驗證頁面,並與AllAuthenticatedUsers權限一起工作 – tuxSlayer

+0

您可以共享來自gsutil getacl對象的輸出以及您用於訪問對象的URL嗎? –

+1

已經解決,我使用了錯誤的網址,http://storage.googleapis.com/bucket/object它工作正常,謝謝 – tuxSlayer

3

如果你得到:您使用的是過時的別名, 「setdefacl」,對於 「defacl」 ......

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