Google cloud storage storage.objects().compose()不工作
我通过Java使用GCS JSON API。我的插入对象、删除对象和复制对象的代码都非常有用。但由于某些原因,我无法使storage.objects.compose正常工作。不管怎样,我都会得到400或500的错误。即使当我在谷歌网站上使用“立即试用”功能进行撰写时,我也会遇到同样的错误。因此,我肯定缺少一些基本的东西 这是我的密码:Google cloud storage storage.objects().compose()不工作,google-cloud-storage,Google Cloud Storage,我通过Java使用GCS JSON API。我的插入对象、删除对象和复制对象的代码都非常有用。但由于某些原因,我无法使storage.objects.compose正常工作。不管怎样,我都会得到400或500的错误。即使当我在谷歌网站上使用“立即试用”功能进行撰写时,我也会遇到同样的错误。因此,我肯定缺少一些基本的东西 这是我的密码: StorageObject metadata = new StorageObject() .setMetadata( ImmutableMap.of("O
StorageObject metadata = new StorageObject()
.setMetadata( ImmutableMap.of("OriginalFileName", originalFileName) )
.setContentType(contentType)
.setAcl( ImmutableList.of( new ObjectAccessControl().setEntity("allUsers").setRole("READER") ) );
// list of files to concatenate
List<SourceObjects> sourceObjects = new ArrayList<SourceObjects>();
for (int i = 0; i <= chunkNumber; i++) {
sourceObjects.add( new SourceObjects().setName(objectName + ".chunk" + i) );
}
ComposeRequest composeReq = new ComposeRequest()
.setSourceObjects(sourceObjects)
.setDestination(metadata);
storage.objects().compose(bucketName, objectName, composeReq).execute();
经过数小时的反复试验,在使用compose方法时,似乎无法像上面的示例那样设置ACL。它与其他方法(插入、复制,但不组合)一起使用。谷歌:如果你想让开发人员不必操之过急,你真的需要更多信息性的错误消息。无效的ACL或无效的权限或类似错误消息中的任何内容都将是一个巨大的帮助。您好,user2134059,您似乎没有做错任何事情。我会亲自调查这个问题,当我更好地了解出了什么问题时,我会告诉你的。我已经确认我可以复制这种行为。我们正在进行修复。谢谢你注意到这一点!伟大的谢谢你的回复。目前,删除上述代码的setAcl部分并在编写后调用storage.objectAccessControls.insert似乎对我有效。更新:根本原因已得到修复。你的例子现在应该很好用了。
500 { "code" : 500, "errors" : [
{ "domain" : "global", "message" : "Backend Error", "reason" : "backendError" }
], "message" : "Backend Error" }