我在GCE上托管了一个java projet。
我正在使用google-api-services-storage
在G-storage上创建一个文件夹并在那里上传一些文件。
如何使用google storage 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();
答案 0 :(得分:0)
“projectTeam”是一个只读属性。你需要构建一个“实体”,如下所示:
acl.add(new ObjectAccessControl().setRole("READER").setEntity("allUsers"));