파일을 Amazon S3에 직접 업로드 한 다음 해당 위치에서 Carrierwave로 앱에 추가하는 것이 좋습니다. 파일을 s3의 임시 버킷/위치에 저장하면 carrierwave가 효과적으로 처리 한 다음 이동시킬 수 있습니다. 그것은 직접 S3에 업로드하고 가정 된 후에는 버킷을 사용할 수 있고 당신이, 당신이 그것을 "이동"과정을 데리러 Carrierwave을 가지고 다음과 같은 코드를 사용 할 수 있습니다 그것을 업로드 주소 :
def add_file_from_URL(bucket, object_address)
s3 = AWS::S3::new
bucket = s3.buckets[bucket]
object = bucket.objects[object_address]
object_url = object.url_for(:read, :expires => 60*60, :secure => true) #expires in 1 hour
self.remote_attachment_url = object_url.to_s
self.save
object.delete()
end
이 코드는 파일을 포함하는 모델에 포함됩니다.
파일을 처리 (크기 조정)하는 코드를 생략했습니다. 아직 수행하지 않은 부분을 Carrierwave 문서에서 쉽게 찾을 수 있어야합니다.
파일에 대한 메타 데이터를 추적하려면 : before_save 콜백을 사용하여이 정보를 파일 옆의 필드에 저장하십시오.
private
def update_file_attributes
if file.present?
self.file_content_type = attachment.file.content_type
self.file_size = attachment.file.size
end
end
이 예제에서는 실제 파일 크기를 저장하지만 대신 크기를 조정할 수 있습니다. 이것은 파일을 저장하는 모델에 들어갑니다.