我正在使用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
答案 0 :(得分:0)
要使用Ruby on Rails列出存储在Cloud Storage存储桶中的文件,请参阅定义的代码示例here。您还可以upload files到云存储分区,并使用Ruby on Rails从delete files到它们。
此外,由于您允许客户修改Cloud Storage存储桶中的文件,因此您可以考虑使用versioning。这会增加您的成本,但会为您的客户提供可靠性。
以下是Ruby on Google Cloud Platform文档的链接,可能会对您有所帮助。