【问题标题】:Heroku File StorageHeroku 文件存储
【发布时间】:2023-03-19 09:55:02
【问题描述】:

Heroku 只有 100MB 的文件存储空间,对吧?我正在制作一个低级的 Rails 应用程序,我真的很喜欢 Heroku,但是如果我的应用程序允许每个用户上传一张图片,我可能会很快用完空间……有没有一个简单的解决方案可以让我有替代方案用于个人资料图片或类似内容的文件存储?

【问题讨论】:

  • 虽然您确实想在 Heroku 上使用 S3(因为文件空间只是临时的,并且不会持续存在)来存储诸如个人资料图片之类的东西(请参阅下面的 Codeglot 的答案),但我确实想指出100MB 的限制仅适用于 slug(应用程序的编译源和 gem)。您的 /tmp 目录实际上可以保存非常大的文件(我想我已经看到了 4GB 可以暂时存储在那里的说法)。但是,同样,如果您的测功机重新启动,您将失去任何东西,所以它只是用作临时存储空间,而不是永久存储空间。
  • 另外参见 Heroku 开发中心文章 here 关于该主题

标签: heroku file-storage


【解决方案1】:

this blog post

在你的模型中。

has_attached_file :picture, 
                   :styles => {:large => "275x450>"},
                   :storage => :s3, 
                   :s3_credentials => "#{RAILS_ROOT}/config/s3.yml",
                   :path => "appname/:attachment/:style/:id.:extension"

在配置目录中的 s3.yml 中:

    development:
      bucket: bucketname
      access_key_id: key
      secret_access_key: key

    production:
      bucket: bucketname
      access_key_id: key
      secret_access_key: key

然后在 Amazon S3 上注册一个存储桶:http://aws.amazon.com/s3/

【讨论】:

  • 链接已失效。不知道有没有新的?
  • @DonalRafferty 它还在回程机器上。
【解决方案2】:

我会建议您查看 https://addons.heroku.com/cloudinary 的 heroku 附加解决方案。您将获得 500MB 的免费和简单的 heroku 集成。

对于 RoR 应用,您可以查看:https://devcenter.heroku.com/articles/cloudinary#using-with-ruby-on-rails

还有NodejsDjango 的文档。

【讨论】:

  • 我发现 Cloudinary 是一个完美的解决方案,它现在提供 10 GB 的免费存储空间。另外,一定要检查这个 django 应用程序:github.com/klis87/django-cloudinary-storage,它只需要更改一些设置,不像原来的 Cloudinary 应用程序需要更改模型、视图和模板中的代码!
【解决方案3】:

是的,最简单的解决方案是使用 api.imgur.com,它允许您每小时免费上传 1250 张图片。

您只需要注册并获取您的客户 ID,然后您需要发送 post 请求到

https://api.imgur.com/3/upload

将图像数据作为表单数据。然后,您会在响应数据中获得上传图像的链接,您可以将其存储在数据库中,然后您可以像访问任何其他带有前端链接的图像一样访问该图像。

更多:

Imgur API docs link

【讨论】:

    猜你喜欢
    • 2014-07-14
    • 2016-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多