2015-10-19 6 views
0

我開始使用霧儲存項目。我做了最簡單的操作:上傳對象,獲取對象,刪除對象。我的代碼看起來是這樣的:ruby​​-fog:在少於3個請求中從對象存儲中刪除一個項目

storage = get_storage(...) // S3/OpenStack/... 
dir = storage.directories.get(bucket) # 1st request 
if !dir.nil? 
    dir.files.create(key: key, body: body) # 2nd request 

    # or: 
    dir.files.get(key) # 2nd request 

    #or 
    file = dir.files.get(key) # 2nd request 
    if !file.nil? 
    file.destroy # 3rd request 
    end 
end 

在所有情況下有一個第一步得到的目錄,這確實給存儲引擎(它返回零,如果該目錄不存在)的請求。

然後還有另一個步驟來做任何我想做的事情(在刪除的情況下甚至有中間的第三步)。

但是,如果我看一下讓我們說Amazon S3 API,很明顯,刪除一個對象不需要3個請求到亞馬遜。

有沒有辦法使用霧,但使它對存儲提供者的請求較少?

回答

1

我認爲這已經在郵件列表中得到了解答,但是如果您在目錄/文件上使用#new,它會給您一個本地參考(與#get進行查找)。這應該讓你得到你想要的,儘管如果文件或目錄不存在可能會引發錯誤。

相關問題