Tôi đang sử dụng sóng mang, đường ray và amazon s3. Mỗi lần tôi tiết kiệm một hình ảnh, hình ảnh xuất hiện trong s3 và tôi có thể nhìn thấy nó trong công tác quản lý giao diện điều khiển với tên như thế này:amazon s3 và tên sóng mang hình ảnh ngẫu nhiên trong thùng không khớp trong cơ sở dữ liệu
https://s3.amazonaws.com/bucket-name/ uploads/images/10/888fdcfdd6f0eeea_1351389576.png
Nhưng trong mô hình, tên là thế này:
https://bucket-name.s3.amazonaws.com/ uploads/images/10/b3ca26c2baa3b857_1351389576.png
Trước hết, tại sao tên ngẫu nhiên lại khác? Tôi tạo nó trong trình tải lên như vậy:
def filename
if original_filename
"#{SecureRandom::hex(8)}_#{Time.now.to_i}#{File.extname(original_filename).downcase}"
end
end
Tôi biết nó không tạo ra chuỗi ngẫu nhiên mọi cuộc gọi vì sai địa chỉ trong mô hình nhất quán và được lưu. Một nơi nào đó trong quá trình một cái mới phải được tạo ra để tiết kiệm trong mô hình sau khi tên hình ảnh đã được lưu và gửi đến amazon s3. Lạ thật.
Ngoài ra, tôi có thể có url khớp với url theo s3/bucket thay vì bucket.s3 mà không sử dụng regex không? Có một lựa chọn trong carrierwave hoặc một cái gì đó cho điều đó?
Tôi đánh giá cao mẹo mà nó không được lưu. Tôi chỉ cần lưu nó – AJcodez