Java 如何使用google存储api使文件公开共享?
我有一个在GCE上托管的java projet 我正在使用Java 如何使用google存储api使文件公开共享?,java,permissions,google-cloud-storage,Java,Permissions,Google Cloud Storage,我有一个在GCE上托管的java projet 我正在使用googleapi服务存储 在G-storage上创建文件夹并在那里上载一些文件 如何使用google存储api使文件公开共享 我没有看到关于这方面的java文档 以下是我的尝试: Storage gsClient; StorageFileId gcsFileId = fileIdCreator.createFromUri(gcsFileURI); List<ObjectAccessControl> a
googleapi服务存储
在G-storage上创建文件夹并在那里上载一些文件
如何使用google存储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();
存储客户端;
StorageFileId gcsFileId=fileIdCreator.createFromUri(gcsFileURI);
List acl=new ArrayList();
//add(新的ObjectAccessControl().setRole(“”);
//add(acl.of(acl.User.ofAllUsers(),acl.Role.READER))的acl.of;
add(新建ObjectAccessControl().setRole(“阅读器”).setProjectTeam(新建ObjectAccessControl.ProjectTeam().SetTam(“查看器”));
StorageObject对象=新的StorageObject().setName(gcsFileId.getObjectId()).setAcl(acl);
InputStreamContent mediaContent=新的InputStreamContent(“应用程序/八位字节流”,inputStream);
Storage.Objects.Insert insertRequest=gsClient.Objects().Insert(gcsFileId.getBucket(),object,mediaContent);
insertRequest.getMediaHttpUploader().setDirectUploadEnabled(true);
insertRequest.execute();
我看到了这个
而这个“projectTeam”是只读属性。相反,您需要构造一个“实体”,如下所示:
acl.add(new ObjectAccessControl().setRole("READER").setEntity("allUsers"));
谢谢,我如何将此acl设置为已经在云中的文件?