我正在尝试使用Google云端存储客户端库将字节数组“上传”到本地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),这是有道理的。
问题是,如何阻止本地开发服务器尝试创建无效的文件名?
答案 0 :(得分:4)
我终于找到了错误的来源。如果我在truecrypt驱动器中运行开发服务器,则会发生错误。如果我在外面运行它,错误就消失了。所以这似乎是truecrypt处理文件的问题。
答案 1 :(得分:2)
我认为你最好的选择是在这里挖掘enable file name character translation
答案 2 :(得分:2)
在我的例子中,它是文件系统类型。我将我的文件保存在usb磁盘上,这是FAT32的兼容性。在我改为NTFS后,现在一切正常。多么讨厌的小虫子。
PS。 @Andre的回答激发了我的灵感。我无法想象他已经找到了什么。