这个问题花了我一些时间,因为一些文件似乎消失了。我不确定这是否是正确的行为(在我的情况下是无意中)将带有双斜杠的文件添加到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命令行中的原因。评论