Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud storage storage.objects().compose()不工作_Google Cloud Storage - Fatal编程技术网

Google cloud storage storage.objects().compose()不工作

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

我通过Java使用GCS JSON API。我的插入对象、删除对象和复制对象的代码都非常有用。但由于某些原因,我无法使storage.objects.compose正常工作。不管怎样,我都会得到400或500的错误。即使当我在谷歌网站上使用“立即试用”功能进行撰写时,我也会遇到同样的错误。因此,我肯定缺少一些基本的东西

这是我的密码:

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" }