簡體   English   中英

如何確定機架空間中的文件類型?

[英]How can I identify the kind of file in rackspace?

我要用回形針或載波將文件上傳到機架中的機架(視頻,音頻和圖像)上,我需要知道文件的種類,並以image_tag或video_tag或audio_tag在視圖中顯示,機架告訴我這種文件嗎? 還是我必須存儲在數據庫中? 謝謝

您可以使用“ ruby​​-cloudfiles”庫中的“ content_type”功能查詢/設置文件類型。

看到這里: https : //github.com/rackerlabs/ruby-cloudfiles/blob/master/lib/cloudfiles/storage_object.rb#L80-L82

這樣的事情應該可以用於創建對象:

container = conn.create_container('new_container')
obj = container.create_object('new_obj.txt')
obj.load_from_filename('./obj.txt')
obj.content_type = 'text/plain'

並檢索對象:

obj = container.object('new_obj.txt')
puts obj.content_type   # text/plain

即使機架空間會告訴您文件類型,您也不希望這樣做,因為從服務器到服務器的往返運行會花費很長時間。

我下面的代碼示例假設使用載波,但是我確信回形針也有類似的選擇。 兩種選擇:

  1. 解釋文件擴展名

類似於: File.extname(user.avatar) ,然后您必須根據自己的喜好進行解釋。

  1. 記錄並解釋MIME類型。

載波自述文件首先說明了如何獲取載波以進行計算,然后您可能應該手動將其存儲到數據庫或使用carrierwave-meta 然后, user.avatar.content_type將類似於image/jpeg ,您可以輕松地將其解釋為特定的文件類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM