如何删除回形针中的现有样式尺寸

我知道你可以为纸夹添加新的样式然后使用过程! 强制回形针填写缺失样式的方法。 但是,如果你想放弃你不再使用的旧款式,该怎么办呢?

例如,我有iphone和ipad的样式,我改变了主意,反而喜欢:大和中等,尺寸略有不同而不是:iphone和:ipad。

特别是我在s3上托管我的图像,因为我的应用程序是在heroku上。 我想删除s3上与iphone和:ipad样式有关的所有文件夹。 是否有删除选择样式的rake任务?

如果您要删除无效文件,请尝试:

rake paperclip:clean # Cleans out invalid attachments. 

您可以通过键入以下内容来查看控制台中的所有回形针任务:

 rake -T paperclip 

在你的终端运行

 rake -T paperclip 

你可以这样看

 ... rake paperclip:clean # Cleans out invalid attachments. rake paperclip:refresh # Refreshes both metadata and thumbnails. rake paperclip:refresh:metadata # Regenerates content_type/size metadata for a given CLASS (and optional ATTACHMENT). rake paperclip:refresh:missing_styles # Regenerates missing thumbnail styles for all classes using Paperclip. rake paperclip:refresh:thumbnails # Regenerates thumbnails for a given CLASS (and optional ATTACHMENT and STYLES splitted by comma). ... 

要刷新缩略图,请尝试此操作

 rake paperclip:refresh:thumbnails class= Xyz # xyz replace with your class name 

删除

 rake paperclip:clean # Cleans out invalid attachments. 

您将不得不编写一个脚本来完成此任务,但是s3_object确实有一个s3_object便捷方法,可以s3_object

 obj = User.first.avatar.s3_object(:unwanted_style) obj.delete if obj.exists? 

你可以在一个循环中放置你想要操作的任何对象。

资料来源:

  • Paperclip::Storage::S3文档
  • aws-sdk对象文档

您可以使用Attachment#clear方法。

如果你想删除thumbdisplay样式,你可以运行如下:

 YourModel.find_each do |ym| ym.attachment.clear(:display, :thumb) ym.save! end