【问题标题】:Store files in Windows Azure Storage using Rails (waz-storage gem)使用 Rails(waz-storage gem)将文件存储在 Windows Azure 存储中
【发布时间】:2013-03-19 21:04:44
【问题描述】:

我计划使用 Windows Azure 存储来保存我的 Rails 应用程序中的 blob 数据。 我在网上搜索了一个合适的解决方案,并找到了一个名为 waz-storage 的 gem。

conn = WAZ::Storage::Base.establish_connection(:account_name => account_name, :access_key => access_key)

我尝试使用上面的块进行连接,这部分执行成功。但是当我使用如下命令时

WAZ::Blobs::Container.find('test-container')

它失败并显示403 Forbidden,我实际上使用的是从我的 Windows Azure 存储帐户获得的帐户名和访问密钥。

我在这做错了什么?或者如果有任何更好的解决方案可以将 blob 存储在 azure 中,请提出建议。

【问题讨论】:

  • 这里有同样的问题。当我执行WAZ::Blobs::Container.create('test-container') 时,它实际上在 Azure 中创建了容器,但是在尝试添加 blob 时,我一直收到同样的错误。还没有找到解决办法...
  • 尝试从真实服务器上传,而不是从本地主机上传。它似乎无法从本地主机工作。

标签: ruby-on-rails azure azure-storage azure-blob-storage


【解决方案1】:

我在 waz-storage gem issues list 中找到了解决方案。

首先,“找到”您要使用的容器(如果您愿意,也可以创建一个):

container = WAZ::Blobs::Container.find('name_of_container')

然后,试试这个:

open('/absolute_path_to_the_file_you_are_uploading', 'rb') do |f|
  container.store('name_of_blob', f.read, 'file_type/extension')
end

这对我来说非常有效。祝你好运!

【讨论】:

  • 我正在尝试使用代码 conn = WAZ::Storage::Base.establish_connection!( { :account_name => account_name, :access_key => access_key} ) container = WAZ::Blobs::Container.find('test') 在本地执行与您相同的操作,但它显示 403 被禁止。我必须在 Azure 门户中启用任何设置吗?
  • 是的。在 Azure 管理门户中单击存储,然后单击容器。这将列出所有容器。找到您要上传的内容,然后单击其 URL 或 Last Modified(只需突出显示容器,但不要单击名称)。突出显示后,单击底部导航中的编辑容器,然后将访问权限更改为“公共容器”。这对我有用。
猜你喜欢
  • 2019-07-01
  • 1970-01-01
  • 2022-12-21
  • 2014-12-03
  • 2012-05-20
  • 2018-11-26
  • 2012-10-12
  • 2017-08-18
  • 2013-08-13
相关资源
最近更新 更多