【问题标题】:Convert and store to S3 with REST API / InkFilepicker使用 REST API / InkFilepicker 转换并存储到 S3
【发布时间】:2013-11-23 16:42:17
【问题描述】:

我在 heroku 上有一个 Rails 应用程序。从服务器端(使用 InkFilepicker 的 REST API),我想转换一个文件,将其保存到我的 S3 存储桶并将 S3 url 存储到我的模型。

具体来说:给定一个图像 (https://www.filepicker.io/api/file/hFHUCB3iTxyMzseuWOgG),我想将其转换 (https://www.filepicker.io/api/file/hFHUCB3iTxyMzseuWOgG/convert?w=200&h=150&fit=clip) 并将转换后的图像存储到我的 S3 存储桶中。

编辑

这是我最后所做的:

after_save :save_thumbnail_url_to_s3

def save_thumbnail_url_to_s3
  convert_options = {
    fit: 'clip',
    h:500,
    w:500
  }
  file   = open("#{self.url}/convert?#{convert_options.to_query}")

  # Writing file into S3 bucket
  amazon = AWS::S3.new(access_key_id: ENV['AWS_ACCESS_KEY_ID'], secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'])
  bucket = amazon.buckets[ENV['AWS_BUCKET']]
  object = bucket.objects[s3_media_path]
  written_file = object.write(file, acl: :public_read) # :authenticated_read
  self.update_column :thumbnail_url, written_file.public_url.to_s
end

【问题讨论】:

    标签: ruby-on-rails filepicker.io


    【解决方案1】:

    如果您使用的是 filepicker.io API,您可以使用 API 转换您的文件,然后提供然后使用 open-uri 如下所示创建可以发送到 S3 的文件流,Tempfile 如下所示File ruby​​ 中的 API

    [3] pry(main)> require 'open-uri' => true [4] pry(main)> file = open("@987654321@?...") => # [5] pry(main)> file.class => Tempfile

    【讨论】:

      【解决方案2】:

      您可以简单地使用aws-s3 gem:https://github.com/marcel/aws-s3

      但请注意,Heroku 是只读 面向的,您只能处理临时文件。

      【讨论】:

      • 但是首先,如何将图片从url下载到tmp目录?
      • 在 heroku 服务器上操作文件不是一个好主意。我会寻找其他解决方案。你到底想做什么?
      • 给定一个图像 (filepicker.io/api/file/hFHUCB3iTxyMzseuWOgG) 我想转换它 (filepicker.io/api/file/hFHUCB3iTxyMzseuWOgG/convert?...) 并将转换后的图像存储到我的 S3 存储桶中。
      • 但我应该提到我想使用 InkFilepicker 的 REST Api 来做到这一点......
      • 看起来您不需要在服务器上转换图像。 InkFilepicker 似乎能够自己完成(比如访问特定的 url)。你检查过这个宝石吗:github.com/Ink/filepicker-rails
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-18
      • 2020-12-27
      • 2021-08-16
      • 1970-01-01
      相关资源
      最近更新 更多