2016-07-27 194 views
0

到處搜索無法找到指定ACL值的方式,因此我剛剛上傳的文件可以由任何具有鏈接的人員公開讀取。將文件上傳到Google雲端存儲時設置公共讀取權限

這是創建包含文件信息的Data.Object的代碼,但存在Acl屬性,但將實體設置爲「allUsers」,角色「READER」不起作用。

Dim fileObj = New Google.Apis.Storage.v1.Data.Object() With { _ 
       .Name = "/myfolder/2016/07/27/selfie1.jpg", _ 
       .Updated = DateTime.Now, _ 
       .Size = CULng(fileStream.Length) _ 
      } 

一旦我上傳,我可以得到從的MediaLink屬性的鏈接,我的問題是我怎麼可以指定文件我要上傳任何人都可以讀取的權限?

回答

0

似乎我沒有正確地測試鏈接,這裏是誰發現這個問題,並想知道我在做什麼的代碼。這是測試代碼,而不是生產代碼。

Dim fileMimeType = "image/jpeg" 
Dim fileStream = New FileStream("c:\selfie1.jpg", FileMode.Open, FileAccess.Read) 

Dim acc As New ObjectAccessControl() 
acc.Entity = "allUsers" 
acc.Role = "READER" 

Dim Accs As New List(Of ObjectAccessControl) 
Accs.Add(acc) 

Dim fileObj = New Google.Apis.Storage.v1.Data.Object() With { _ 
       .Name = "/myfolder/2016/07/27/selfie1.jpg", _ 
       .Updated = DateTime.Now, _ 
       .Acl = Accs, _ 
       .Size = CULng(fileStream.Length) _ 
      } 

Dim mediaUpload = New ObjectsResource.InsertMediaUpload(service, fileObj, GCSBucketName, fileStream, fileMimeType) 
mediaUpload.Upload() 

ObjectAccessControl對象的兩個值是讓它工作的關鍵。 'service'變量是一個StorageService對象,可以使用從api控制檯獲取的.p12或.json文件中的ServiceAccountCredential創建。

相關問題