我正在考慮實施將我的存儲庫中的某些文件同步到S3的Rake任務。問題在於我只想在更新文件時更新文件。因此,如果文件A被修改並且B保持不變,則只有文件A將在我的下一個應用程序部署期間同步到S3。將Rails回購中的文件同步到S3
什麼是確定文件已被修改的可靠方法?我正在考慮使用git
來確定文件是否已在本地更改....是否有任何其他方式來執行此操作? S3是否提供類似的功能?
我正在考慮實施將我的存儲庫中的某些文件同步到S3的Rake任務。問題在於我只想在更新文件時更新文件。因此,如果文件A被修改並且B保持不變,則只有文件A將在我的下一個應用程序部署期間同步到S3。將Rails回購中的文件同步到S3
什麼是確定文件已被修改的可靠方法?我正在考慮使用git
來確定文件是否已在本地更改....是否有任何其他方式來執行此操作? S3是否提供類似的功能?
S3目前不支持條件PUT
s,這將是理想的解決方案,但您可以使用兩個請求來獲得此行爲。您的同步運行將類似於:
HEAD
請求該S3對象。Content-MD5
不同或對象不存在,請發出PUT
請求。這就是說,這聽起來很像東西,你會用資產做,在這種情況下,你是重新發明輪子。 Rails 3資產管道很好地解決了這個問題 - 特別是指紋資產並將哈希放在URL中允許您以非常長的max-age
值爲它們服務,因爲它們是不可變的 - 且asset_sync
gem已經可以將您的資產置於S3自動。
我保證在發送HEAD請求時從S3取回MD5?我沒有看到當我捲曲 – denniss
如果你在PUT請求中提供一個,那麼是的。目前,S3還使用MD5作爲對象的「Etag」,但可以想象,這種行爲將來會改變。 – willglynn