Google云端存储,文件路径中包含双斜线

时间:2015-11-27 21:46:03

标签: google-cloud-storage

这个问题花了我一些时间,因为一些文件似乎消失了。我不确定这是否是正确的行为(在我的情况下是无意中)将带有双斜杠的文件添加到Google云端存储中。

这是重建问题的方法:

$ vi test (create a simple file)
$ gsutil cp test gs://xxxxx.appspot.com/test/doubleslash//test
Copying file://test [Content-Type=application/octet-stream]...
Uploading   gs://xxxxx.appspot.com/test/doubleslash//test:     15 B/15 B
// attempting gsutil ls command with one slash ... only the folder shows    
$ gsutil ls -al gs://xxxxx.appspot.com/test/doubleslash/
                                 gs://xxxxx.appspot.com/test/doubleslash//
// attempting gsutil ls command with two slashes ... only the folder shows    
$ gsutil ls -al gs://xxxxx.appspot.com/test/doubleslash//
                                 gs://xxxxx.appspot.com/test/doubleslash//
$

注意:"测试"文件未显示。但是,提供完整的文件路径时,它会显示:

$ gsutil ls -al gs://xxxxx.appspot.com/test/doubleslash//test
        15  2015-11-27T17:21:24Z  gs://xxxxx.appspot.com/test/doubleslash//test#1448644884041000  metageneration=1
TOTAL: 1 objects, 15 bytes (15 B)

最后,真正奇怪的部分是在将文件添加到单个斜杠文件夹(称为testInside)时,然后执行" gsutil ls"使用双斜杠的命令,出现单斜杠文件夹中的文件,但双斜杠文件夹中的文件不会出现:

$ gsutil cp test gs://xxxxx.appspot.com/test/doubleslash/testInside
Copying file://test [Content-Type=application/octet-stream]...
Uploading   …/xxxxx.appspot.com/test/doubleslash/testInside: 15 B/15 B  
$ gsutil ls -al gs://xxxxx.appspot.com/test/doubleslash//
                                     gs://xxxxx.appspot.com/test/doubleslash//
            15  2015-11-27T20:14:42Z  gs://xxxxx.appspot.com/test/doubleslash/testInside#1448655282555000  metageneration=1
    TOTAL: 1 objects, 15 bytes (15 B)

现在,通过应用程序列出文件夹时,双斜杠文件夹中的文件与单斜杠文件夹中的任何文件一起出现(指定一个斜杠时):

的build.gradle:

compile ('com.google.apis:google-api-services-storage:v1-rev54-1.21.0')

Java代码:

Objects response = storageService.objects()
                       .list(“xxxxx.appspot.com")
                       .setPrefix(“test/doubleslash/").execute();

我无法确定从代码中出现的双斜杠文件夹中的文件的原因,而不是gsutil命令行中的原因。评论

0 个答案:

没有答案