【问题标题】:Modifying image in Active Storage cloud修改 Active Storage 云中的图像
【发布时间】:2018-12-10 11:39:50
【问题描述】:

我使用 Rails 5.2 和 GCS 作为云服务。 我想给用户一个裁剪和旋转用户图像的机会。 用户有很多图片,图片有一个:image_file附加

在开发中我使用这样的方法:

class Image

...

  def  rotate(degree)
    image =  MiniMagick::Image.new(ActiveStorage::Blob.service.send(:path_for, self.image_file.key))
    image.rotate "#{degree}"
    image.write(ActiveStorage::Blob.service.send(:path_for, self.image_file.key))
    self.image_file.blob.analyze
  end

...

end

但我不知道如何获取云中的图像文件。

我已经将文件下载到本地存储并进行所有需要的操作。

现在只需要替换(删除当前文件并创建一个具有相同名称的新文件)云中的文件(如果可能,不更改数据库记录中的任何内容),但我不知道该怎么做带主动存储。

至少我需要云中的文件名才能使用裸google-cloud-ruby

【问题讨论】:

    标签: google-cloud-platform ruby-on-rails-5 google-cloud-storage rails-activestorage


    【解决方案1】:

    要使用 Ruby on Rails 列出存储在 Cloud Storage 存储分区中的文件,请参阅定义为 here 的代码示例。您还可以使用 Ruby on Rails 将 upload files 发送到云存储桶和 delete files

    此外,由于您允许客户修改他们在 Cloud Storage 存储分区中的文件,您可以考虑使用versioning。这会产生额外的费用,但会为您的客户提供可靠性。

    这里是Ruby on Google Cloud Platform 文档的链接,可能对您有所帮助。

    【讨论】:

    • 谢谢,但列出所有图片是不合适的,因为数量众多,而且来自不同用户的图片具有不同的隐私设置。
    • 在我的回答中,我分享了列表、上传和删除示例代码链接。在链接中,您还可以找到替换图像的示例代码。
    猜你喜欢
    • 1970-01-01
    • 2020-09-03
    • 1970-01-01
    • 2021-04-15
    • 2019-11-01
    • 2019-01-01
    • 2019-07-13
    • 2018-11-16
    • 1970-01-01
    相关资源
    最近更新 更多