0

我有一個java projet託管在GCE上。我如何使用谷歌存儲API來公開分享這些文件?

我使用google-api-services-storage

創建G上存儲的文件夾,並上傳一些文件存在。

如何使用谷歌存儲API來公開共享文件?

我沒有看到那個java文檔。

這裏是我的嘗試:

Storage gsClient; 
    StorageFileId gcsFileId = fileIdCreator.createFromUri(gcsFileURI); 
    List<ObjectAccessControl> acl = new ArrayList<>(); 
    //acl.add(new ObjectAccessControl().setRole("")); 
    //acl.add(Acl.of(Acl.User.ofAllUsers(), Acl.Role.READER)); 
    acl.add(new ObjectAccessControl().setRole("READER").setProjectTeam(new ObjectAccessControl.ProjectTeam().setTeam("viewers"))); 
    StorageObject object = new StorageObject().setName(gcsFileId.getObjectId()).setAcl(acl); 
    InputStreamContent mediaContent = new InputStreamContent("application/octet-stream", inputStream); 
    Storage.Objects.Insert insertRequest = gsClient.objects().insert(gcsFileId.getBucket(), object, mediaContent); 

    insertRequest.getMediaHttpUploader().setDirectUploadEnabled(true); 

    insertRequest.execute(); 

我看到這個php documentation

json documantation

回答

0

「projectTeam」 是一個只讀屬性。您需要構建一個「實體」,如下所示:

acl.add(new ObjectAccessControl().setRole("READER").setEntity("allUsers")); 
+0

謝謝,我將如何將此acl設置爲已在雲上的文件? http://stackoverflow.com/questions/42749778/how-to-use-java-to-set-acl-to-all-files-under-google-storage-folder –

相關問題