4

我正在尝试使用 Google Cloud Storage Client Library 将字节数组“上传”到本地 GAE/J(1.8.1,Eclipse Juno)开发服务器:

byte[] byteContent = new byte[] {1, 2, 3, 4, 5};
GcsFilename fileName = new GcsFilename("MyBucket", "foo");
GcsOutputChannel outputChannel =
GcsServiceFactory.createGcsService().createOrReplace(fileName, GcsFileOptions.getDefaultInstance());
outputChannel.write(ByteBuffer.wrap(byteContent));
outputChannel.close();

尝试这样做,将引发以下异常:

WARNING: Caught IOException while attempting to write blob
java.io.FileNotFoundException: C:\dev\workspace\gaeTestProjekt\war\WEB-INF\appengine-generated\encoded_gs_key:L2dzL015QnVja2V0L2Zvbw (The filename, directory name, or volume label syntax is incorrect)

考虑到目标文件的名称中存在一个额外的冒号(encoded_gs_key:L2dzL015QnVja2V0L2Zvbw),这是有道理的。

问题是,如何防止本地开发服务器尝试创建无效文件名?

4

3 回答 3

4

我终于找到了错误的根源。如果我在 truecrypt 驱动器中运行开发服务器,则会发生错误。如果我在外面运行它,错误就消失了。因此,truecrypt 处理文件的方式似乎存在问题。

于 2013-11-23T22:54:29.903 回答
2

我认为你最好的选择是在这里挖掘启用文件名字符翻译

于 2013-07-17T03:02:22.360 回答
2

就我而言,它是文件系统类型。为了兼容性,我将文件保存在 FAT32 的 USB 磁盘上。在我更改为 NTFS 后,现在一切正常。多么讨厌的小虫子。

PS。@Andre 的回答启发了我。我无法想象他经历了什么来发现这一点。

于 2013-12-12T22:10:32.440 回答