[TIL] (Rails) Paperclip Fingerprint
TIL
499
RubyOnRails
39
White

Duong Vi Phat viết ngày 12/05/2016

Paperclip Fingerprint

Tình huống của hôm nay là Sếp bỗng dưng muốn chuyển tất cả assets của ứng dụng từ Amazon S3 về VCCloud CDN (đang khuyến mãi gói 100 GB miễn phí, giá tính ra không đắt hơn Amazon S3 nhiều lắm và được khoản Servers đặt ở Hà Nội - Đà Nẵng - Hồ Chí Minh nên thích hợp cho App có lượng lớn truy cập từ VN.)

Sử dụng CDN của VCCloud cũng đơn giản, chẳng phải setup nhiều, chỉ add domain của S3 Bucket vào là chạy được ngay (Enable Static Web Hosting cho Bucket S3 để có sub-domain riêng). Nhưng đẻ ra một vấn đề là trước đây, dùng Paperclip để upload users's file lên S3 mà không có fingerprint, giờ mà dùng CDN thì hỏng bét, nếu file ở S3 có thay đổi thì CDN vẫn serve file cũ. >>> Enable Fingerprint vào tên file cho Paperclip

1 . Tạo Migration cho tất cả các cột có sử dụng Paperclip handle attachment

class AddAvatarFingerPrintToUsers < ActiveRecord::Migration
  def change
    add_column :users, :avatar_fingerprint, :string
  end
end

2 . Thêm Fingerprint vào tên file (đây là ví dụ cho trường hợp của mình)

config/initializers/paperclip.rb

Paperclip::Attachment.default_options.merge! {
  :path => ":class/:attachment/:id_:style_:fingerprint.:extension"
}

Xong bước này thì tất cả file mới upload sau này đều có fingerprint.

3 . Xử lý file đã upload trước đây bằng cách chạy rake sau:

RAILS_ENV=production rake paperclip:refresh CLASS=model_name

3b . Nếu không muốn chạy Rake trên thì có thể xử lý thủ công bằng:

users_to_reprocess.each do |user|
  user.avatar.reprocess!
end

viphat@13-05-2016

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Duong Vi Phat

4 bài viết.
8 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
52 4
(Ảnh) Lý do tại sao Bạn cần làm Side Project Xây dựng một sản phẩm sẽ giúp bạn có thêm kinh nghiệm và kỹ năng đáng giá: từ việc lên ý tưởng, lậ...
Duong Vi Phat viết gần 3 năm trước
52 4
White
46 2
Bài viết hay và nói đúng những gì mình được biết và cho rằng là đúng đắn về Đam mê nên mình post để "keep" lại. Nhiều người trong chúng ta tin ...
Duong Vi Phat viết gần 3 năm trước
46 2
White
13 9
Sau vài ngày tìm hiểu về Meteor thì mình thấy Meteor là một Framework khá hay. Tuy vậy, nó không được phổ biến ở Việt Nam, cộng đồng người dùng ở V...
Duong Vi Phat viết hơn 2 năm trước
13 9
Bài viết liên quan
White
8 1
Tiếp theo (Link) Mình sẽ hướng dẫn cách test căn bản cho API mình tạo. Thật ra mà nói thì mình phải viết test trước khi làm nhưng mà để tránh việc...
My Mai viết hơn 2 năm trước
8 1
White
18 1
Toán tử XOR có tính chất: + A XOR A = 0 + 0 XOR A = A Với tính chất này, có thể cài đặt bài toán sau với độ phức tạp O(N) về runtime, và với O(1)...
kiennt viết hơn 1 năm trước
18 1
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
4 bài viết.
8 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!