1

레일즈 3에 내장 된 파일 관리 시스템에 대한 다운로드 링크를 paperclip-cloudfiles gem을 사용하여 설정하려고합니다. send_file 방법은 파일을 로컬로 호스팅 할 때 훌륭하게 작동하지만 Rackspace Cloudfiles 시스템을 사용해야합니다. 응답 헤더를 설정하려고 시도했지만 다운로드가 초기화 된 것으로 보이지만 완료되면 파일이 비어 있습니다.레일즈 Rackspace 클라우드 파일로 send_file 대체

@file = UserFile.find(params[:id]) 

response.headers['Content-type'] = "#{@file.attachment_content_type}" 
response.headers['Content-Disposition'] = "attachment;filename=\"#{@file.attachment_file_name}\"" 
response.headers['Content-Length'] = "#{@file.attachment_file_size}" 
response.headers['Content-Description'] = 'File Transfer' 
response.headers['Location'] = "#{@file.attachment.url(:original, false)}" 

render :nothing => true 

나는이 권리를하고 있는가 : 여기

내 다운로드 기능입니까?

나는 또한 Rackspace에서 ruby-cloudfiles 라이브러리를 사용하여 객체를 다운로드했지만 거기에는 행운이 없었습니다.

답변

2

"send_data"메소드를 사용하십시오. 그것은 나를 위해 작동합니다.

+0

고마워요! 프로덕션 서버에서 제대로 작동합니다. 로컬 개발 컴퓨터에서 조금 느립니다. 나는 그것이 예상된다고 생각한다. – klahaeck

관련 문제