2012-11-06 44 views
0

_之前的第一位是引腳的ID ...什麼是ZZtfjmGQ用於?我假設_c是probalby與大小有關的事情。什麼位的信息存儲在pinterest圖像網址?

http://media-cache-lt0.pinterest.com/upload/33284484717557666_HZtfjmFQ_c.jpg 

我在node.js中構建了一個圖片上傳服務,並且很好奇其他網站如何存儲圖片。

+0

我已經構建了類似的東西,雖然這純粹是猜測,但我認爲ID位之後的散列是爲CDN中的圖像版本提供UID(使用子域導致我相信其圖像託管在CDN)。如果沒有UID,CDN會緩存映像,並且只有在TTL過期之前,映像的任何更改纔會被註銷。 – srquinn

+0

沒想到,你可能是對的。聽起來像我不需要擔心,直到我有一個CDN。 – chovy

+0

爲了探索,關於最後一個下劃線之後的位的任何想法?圖像大小可能? – srquinn

回答

1

最終圖像由CDN提供,由URL中的子域顯而易見。正如您所指出的,第一位是圖像的ID,第二位是用於解決圖像版本高速緩存限制的UID,最後一位是圖像大小。

CDN的限制是上傳後無法處理圖像。爲了解決這個問題,我的服務將文件上傳到我的Nodejs服務器,然後我將該映像提供給客戶端。我使用jQuery腳本,用戶可以使用它來裁剪將裁剪座標發送回服務器的圖像,並使用ImageMagick創建各種大小的上傳圖像。你可以明顯地消除裁剪步驟,只是使用寬高比來自動創建所需的圖像大小。然後我將最終的圖像上傳到CDN以供最終用戶使用。

當用戶需要更新已經在CDN中的照片時,用戶上傳到nodejs服務器,處理圖像並調整大小,更新UID散列並上傳到CDN。如果你想保持清潔(並減少CDN成本),你可以在這一步刪除舊的「版本」。但是,在我的服務中,如果需要,我可以選擇退回到較舊的版本。

其餘的CRUD操作是非常明顯的。您可以使用ID(我的服務具有用戶標識以及圖像標識以允許更健壯的查詢操作)讀取CDN中可用的圖像列表,並且刪除與標識要刪除的圖像一樣簡單。