2016-03-28 50 views
0

我正在處理文件附件的REST服務。該服務將被我們需要存儲文件附件的幾個內部服務引用。通用REST服務來存儲附件 - 需要什麼類型的參數

我已經決定在數據庫中存儲元數據,但我有一些問題以命名文件的最佳方式。我不能把所提供的名字作爲唯一的名字,因爲從理論上講,同一個名字可以由2個不同的內部服務提供。我想過爲文件名添加日期/時間,但呼叫服務需要知道如何更改丟失的名稱,以瞭解他們需要什麼。我正在考慮要求某種密鑰(票號,活動號碼等),但這意味着我還需要知道呼叫服務的名稱。

所以,從一個普通的附件服務視圖 - 這將是要傳遞這將使它可以存儲一般的數據,並返回,文件附件的信息?

我很欣賞這可能是一個主題討論,但在我的谷歌搜索我沒有發現多少有用的信息,所以我很願意聽取建議,並把我的設計一起服用此奉勸考慮。雖然我會用Java寫這個問題是產品不可知的。

+0

你總是可以發送你選擇的文件名作爲響應頭的一部分(甚至是有效載荷,如果你已經有的話)。客戶端需要記住它 – asgs

+0

每個附件是否會從使用用戶名和特定會話登錄的客戶端發送? –

+0

散列附件會爲您提供獨特的引用,並提供一組過濾器以與散列值一起存儲以供參考。取決於附件與其他內部服務之間的關係。 – Dustin

回答

0
  • 理想情況下,我會這樣做,它很適合我們的應用 很長一段時間。這可能不是最好的解決方案。來電者發送 文件名和文件內容。

  • 被調用者保存該文件的文件,文件名和唯一ID。

  • 如果是來自不同的來電系統,那麼來電識別碼 代碼(對於呼叫者來說是唯一的)。

  • 當來電者要求您列出文件時,您可以發送姓名,ID。 調用者可以在用戶界面中顯示文件名,並將其隱藏。

  • 當呼叫者需要某個特定文件時,他應該發送ID爲 ,並且您可以從管理/ NAS/DB的內容 中獲得來自ID的文件內容。

0

使用生成的隨機UUID作爲文件名並將其返回到響應的「位置」標題中,例如,

Status: 201 Created 
Location: https://<hostname>/<path>/<UUID> 
相關問題