java - 使用带有 Java 的 JSON API 在 Google Cloud Storage 中插入对象(作为文件夹)

标签 java json google-app-engine google-cloud-storage cloud-storage

我已经知道 Google Cloud Storage 中没有文件夹(它们被视为对象),所以请看一下我的问题,您就会明白我的意思。谢谢:-)

这是我上传对象的方法,在我的具体情况下,我想上传一个“文件夹”,所以一个以“/”结尾的文件(例如:“newfolder/”),但我在我的代码末尾的 execute() 中收到 GoogleJson 错误。

[错误]:

Uncaught exception from servlet
com.google.api.client.googleapis.json.GoogleJsonResponseException: 400 OK
{
  "code" : 400,
  "errors" : [ {
    "domain" : "global",
    "message" : "Required",
    "reason" : "required"
  }, {
    "domain" : "global",
    "message" : "Required",
    "reason" : "required"
  }, {
    "domain" : "global",
    "message" : "Required",
    "reason" : "required"
  } ],
  "message" : "Required"
}

[方法中的代码]:

StorageObject objectMetadata = null;

        //default bucket
        String bucketRootName = “defaultbucketname”;

        //First Folder
        String folderAppName = “myfolder”;

        //folder that i want to create (upload)
        folderName+="/";
        String folderPath = folderAppName + "/" + folderName;

        if (useCustomMetadata) {

            List<ObjectAccessControl> acl = Lists.newArrayList();
            acl.add( new ObjectAccessControl().setEntity("allAuthenticatedUsers").setRole("OWNER"));

            objectMetadata = new StorageObject()

            .setName(folderPath)
            .setAcl(acl)
            .setContentDisposition("attachment");
        }

        Storage.Objects.Insert insertObject = storage.objects().insert(bucketRootName, objectMetadata);

        StorageObject metadata = insertObject.execute();
        return metadata;

为了有一个像这样的路径的桶: 默认存储桶名称/我的文件夹/文件夹名称/

有人知道怎么解决吗?

非常感谢

最佳答案

上传的对象必须具有内容类型,即使它们的大小为零字节。

此外,我很确定您必须上传一个实际文件,即使它的大小为零字节。

关于java - 使用带有 Java 的 JSON API 在 Google Cloud Storage 中插入对象(作为文件夹),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24009514/

相关文章:

java - 如何为不在设备或模拟器上的 Android 运行单元测试?

json - Backbone.js中使用hunchentoot解析model.save()发送的post请求

json - 如何使用python3解析嵌套的json数据文件并将其插入sqlite数据库

google-app-engine - 是否可以禁止在 Google App Engine 上使用 SSL 3.0 版?

python - appengine 数据存储多个 "puts"事务性能

java - 系统时钟的外部更改如何影响 java util 计时器?

java - SharedPreferences 不返回默认值

java - 如何将输出流转换为输入流?

json - 如何显示自定义验证错误消息

java - Google Cloud Storage createOrReplace 文件已损坏(大小不同,...)