【问题标题】:Extra object in Google Cloud Storage when using Fog使用 Fog 时 Google Cloud Storage 中的额外对象
【发布时间】:2015-01-05 05:41:53
【问题描述】:

我正在按照fog.io/storage 示例创建目录然后上传文件。当我将文件推送到 Google Cloud Storage 时,一切正常,除了总是有一个“二进制/八位字节流”文件,其名称与我创建的最深文件完全相同。

我的代码与 AWS 示例非常相似,因为我创建了一个目录,并从该新目录中创建了一个文件。目录结构已正确创建,文件已正确上传,但总是有一个额外的 0 字节文件。我的代码如下:

job_number = 100

connection = Fog::Storage.new({
  :provider                         => 'Google',
  :google_storage_access_key_id     => YOUR_GCE_ACCESS_KEY_ID,
  :google_storage_secret_access_key => YOUR_GCE_SECRET_ACCESS_KEY
})

directory = connection.directories.create(
  :key    => "test-project/uploads/#{job_number}",
  :public => false
)

file = directory.files.create(
  :key    => 'file.pdf',
  :content_type => 'application/pdf',
  :body   => File.open("/path/to/my/file.pdf"),
  :public => false
)

目录结构完美(gs://test-project/uploads/100 文件夹存在),file.pdf 文件也存在于该目录中(gs://test-project/uploads/100/file.pdf) pdf)。

问题在于:

directory = connection.directories.create(
  :key    => "test-project/uploads/#{job_number}",
  :public => false
)

命令运行,在 gs://test-project/uploads/100 和目录 gs://test-project/uploads/100/ 中有一个文件。当我浏览代码时,connection.directories.create(...) 命令肯定会创建额外的文件,但我不知道为什么。

我还尝试在 connection.directories.create(...) 命令的键值上添加一个斜杠,但这实际上会产生一个比这更糟糕的不同目录结构问题(这还不错,只是烦人)。

有没有人看过这个或者知道如何正确地通过 Fog 创建目录结构?

【问题讨论】:

  • 猜测这可能是由于试图创建一个已经存在的目录?如果你从头开始,这仍然会发生吗?否则,如果您在 github repo 上报告问题,我可以更轻松地寻求帮助。

标签: ruby-on-rails ruby fog


【解决方案1】:

不要直接创建目录到文件,只需创建/获取基本目录/存储桶,然后将文件与目录结构的其余部分一起保存。所以它看起来像这样:

job_number = 100

connection = Fog::Storage.new({
  :provider                         => 'Google',
  :google_storage_access_key_id     => YOUR_GCE_ACCESS_KEY_ID,
  :google_storage_secret_access_key => YOUR_GCE_SECRET_ACCESS_KEY
})

directory = connection.directories.create(
  :key    => "test-project",
  :public => false
)

file = directory.files.create(
  :key    => 'uploads/#{job_number}/file.pdf',
  :content_type => 'application/pdf',
  :body   => File.open("/path/to/my/file.pdf"),
  :public => false
)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-30
    • 1970-01-01
    • 2014-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-15
    相关资源
    最近更新 更多