0

Ich habe ein Java-Projekt auf GCE gehostet.Wie kann ich die Google Storage API verwenden, um die Dateien öffentlich zu teilen?

Ich google-api-services-storage mit

einen Ordner auf G-Speicher erstellen und einige Dateien dort hochladen.

Wie kann ich die Google Storage API verwenden, um die Dateien öffentlich zu teilen?

Ich sehe die Java-Dokumentation dafür nicht.

hier mein Versuch ist:

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(); 

Ich sah dieses php documentation

und dieses json documantation

Antwort

0

"Projektteam" ist eine schreibgeschützte Eigenschaft. Sie müssen stattdessen eine "Entität" wie folgt erstellen:

+0

danke, und wie würde ich diese ACL auf Dateien setzen, die bereits in der Cloud sind? http://stackoverflow.com/questions/42749778/how-to-use-java-to-set-acl-to-all-files-under-google-storage-folder –

Verwandte Themen