【发布时间】: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