我有一個rails-api項目,它提供了api來訪問我的數據。如何從使用carrierwave的rails-api獲取文件?
我使用carrierwave存儲我的文件,我的模型名爲User
,文件屬性名爲image
。
因此,圖像屬性包含file_name
,url
和一些其他信息。
爲了通過API翻譯這個文件,我增加了寶石carrierwave-base64
。
我明白上傳過程。客戶端應用程序將文件編碼爲base64 code
,然後通過json消息發送到後端。例如:
{user: {email: "[email protected]", image: "data:image/jpg;base64,#{base64_image}"}
所以當後端收到的JSON請求,carrierwave將解析的base64編碼的文件,並將其存儲到本地或S3
我不明白,是Download
進程:
當我請求用戶信息時,我認爲圖像文件將在json消息中作爲base64 code
傳輸,然後客戶端應用程序將base64 code
編碼爲文件(圖像),並且然後顯示。
但實際上,我可以提供JSON數據,是該文件的URL,而不是以base64編碼。
我想從API服務器的文件(影像)的原因是因爲我不想給客戶端應用程序通過網址直接訪問S3。所以每當客戶端應用程序想要獲取文件時,它都會請求api-server,並且api-server將獲取文件並傳輸到客戶端。
有沒有人可以解釋如何做下載?
或者,如果我是在一個錯誤的戰略思想,我需要另一個API端點響應文件對象,不只是與用戶模型陪伴。
乾杯。
你是用一個上傳一件好事,但同時下載你需要ŧ o發送URL沒有base64,這是我在我的項目中做的,它的傳統和好方法是在s3上讀取公共權限,併爲您的客戶上傳和使用expiring_url(60,:thumb) –