Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.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
如何使用Java API在google cloud bucket中创建空文件夹_Java_Google Cloud Storage - Fatal编程技术网

如何使用Java API在google cloud bucket中创建空文件夹

如何使用Java API在google cloud bucket中创建空文件夹,java,google-cloud-storage,Java,Google Cloud Storage,我正在使用JSON API-Google API Client Library for Java访问Google云存储中的对象。我需要在bucket中创建(而不是上载)一个空文件夹,但是JavaAPI和gsutil命令都没有创建文件夹命令。如果有人知道怎么做,请告诉我。提前感谢…您可以通过上传带有尾随斜杠的零大小对象来模拟文件夹 如问题注释中所述,Google云存储不是文件系统,模拟文件夹有严重的限制。这是我创建空(模拟)文件夹的Java方法: 我认为最好在文件名中创建文件夹。例如,如果您需要一

我正在使用JSON API-Google API Client Library for Java访问Google云存储中的对象。我需要在bucket中创建(而不是上载)一个空文件夹,但是JavaAPI和gsutil命令都没有创建文件夹命令。如果有人知道怎么做,请告诉我。提前感谢…

您可以通过上传带有尾随斜杠的零大小对象来模拟文件夹


如问题注释中所述,Google云存储不是文件系统,模拟文件夹有严重的限制。

这是我创建空(模拟)文件夹的Java方法:


我认为最好在文件名中创建文件夹。例如,如果您需要一个名为images的文件夹和另一个名为docs的文件夹,当您指定要上载的对象的名称时,请按以下方式执行images/name\u of_filedocs/name\u of_file

如果文件名为images/dogImage并且您上载了该文件,那么您将在bucket中找到一个名为images的文件夹


我希望能帮助你和其他人

我能问一下为什么吗?另外,从技术上讲,云存储中没有“文件夹”的概念,因为它不是文件系统。是的,你可以。我知道文件系统是不同的。请看这个例子,我正在为一个用户创建一个UI。UI与Google Bucket存储同步。所以,问题是他可以像创建/删除文件和文件夹那样组织他的文件。因此,删除一个Object命令就在那里,但是创建一个目录在googledeveloper控制台中,但是在javaapi或gsutil命令中是不可用的。非常感谢。我将努力实现你的想法。
public static void createFolder(String name) throws IOException {
    Channels.newOutputStream(
            createFile(name + "/")
    ).close();
}

public static GcsOutputChannel createFile(String name) throws IOException {
    return getService().createOrReplace(
            new GcsFilename(getName(), name),
            GcsFileOptions.getDefaultInstance()
    );
}

private static String name;

public static String getName() {
    if (name == null) {
        name = AppIdentityServiceFactory.getAppIdentityService().getDefaultGcsBucketName();
    }
    return name;
}

public static GcsService service;

public static GcsService getService() {
    if (service == null) {
        service = GcsServiceFactory.createGcsService(
                new RetryParams.Builder()
                        .initialRetryDelayMillis(10)
                        .retryMaxAttempts(10)
                        .totalRetryPeriodMillis(15000)
                        .build());
    }
    return service;
}