2011-06-16 74 views
1

Rackspace雲文件,PutStorageItem方法被聲明爲取本地文件路徑,我可以使用變量嗎? (字符串容器名稱,字符串localFilePath);以byte []變量而不是直接本地文件路徑?

API PutStorageItem(string ContainerName,string localFilePath);

我的方法聲明爲

UploadItem(string username, string apiKey, string ContainerName, byte[] Item) 
{ 
    UserCredentials userCredentials = new UserCredentials(new Uri("https://auth.api.rackspacecloud.com/v1.0"), username, apiKey, null, null); 

    Connection connection = new com.mosso.cloudfiles.Connection(userCredentials); 

    connection.PutStorageItem(ContainerName, Item); //<--- X here 
} 

正如你所看到的,PutStorageItem需要一個本地路徑字符串,但項目被聲明爲字節[]。 我可以使用變量而不是本地路徑嗎?

回答

1

如果Cloudfiles庫讓你無可奈何的上傳功能,您有兩個主要選項:

  • 更新您的代碼來獲得一個文件名,而不是預取數據。

顯然這隻適用於上傳文件而不是存儲其他系統的通用數據的情況。

  • 抓取Couldfiles API庫源代碼的副本,然後添加一個重載以獲取數據而不是文件名並重建庫。

我已經在過去做過2號碼了,因爲我需要設置某些標題,而庫代碼只允許添加「meta」標題。如果沿着這條路線走,主頁可以找到here,並且.Net綁定在github上here

有一個最後的選擇是更多的黑客。

  • 保存byte[]磁盤上的臨時文件(假設你有機會),那麼文件名傳遞給Cloudfiles庫。

很顯然,這最後一個選項有點不方便,並且隨着時間的推移磁盤空間和清理方面會出現問題,尤其是如果您要上傳大量數據。