【问题标题】:Google Cloud Storage on local development Server: Invalid Filename本地开发服务器上的 Google Cloud Storage:文件名无效
【发布时间】:2013-07-05 16:38:24
【问题描述】:

我正在尝试使用 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),这是有道理的。

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

【问题讨论】:

  • 您使用的是哪个操作系统?我使用的是 Windows 7 64 位,文件保存在磁盘上,但 Windows shell 或命令提示符都无法浏览。
  • 我遇到了同样的问题。有关此问题的任何更新?

标签: java google-app-engine google-cloud-storage


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    我认为你最好的选择是在这里挖掘enable file name character translation

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-11-12
        • 1970-01-01
        • 1970-01-01
        • 2011-11-10
        • 1970-01-01
        • 2014-11-14
        • 1970-01-01
        • 2014-08-28
        相关资源
        最近更新 更多