![](/img/trans.png)
[英]Rackspace Cloud Files (OpenStack Swift) TempUrl Example in vb.net
[英]Connect to OpenStack Swift ONLY install using Rackspace OpenStack.net
我已經能夠安裝並啟動OpenStack Swift。 我的安裝嚴格是Swift,不包括Keystone或其他OpenStack組件。
使用curl
命令時,我可以創建用戶並進行Swift測試,以確保一切正常。 我遇到問題的地方是當我使用Rackspace在github上維護的OpenStack.NET API時。
使用以下命令,我能夠創建一個快速用戶。
$ curl -v -H 'X-Storage-User: test:tester' -H 'X-Storage-Pass: testing' http://192.168.0.3:8080/auth/v1.0
$ curl -v -H 'X-Auth-Token: <token-from-x-auth-token-above>' <url-from-x-storage-url-above>
$ swift -A http://192.168.0.3:8080/auth/v1.0 -U test:tester -K testing stat
所有操作均按預期方式進行,並且創建了用戶/帳戶。 然后,在Windows開發機上,我從Rackspace GitHub下載了OpenStack.NET API,並創建了一個運行以下代碼的應用程序;
var authUri = new Uri("http://192.168.0.3:8080/auth/v1.0");
var userName = "test";
var password = "tester";
var tenantId = "testing";
var credential = new OpenStackCredential(authUri, userName, password, tenantId);
var client = OpenStackClientFactory.CreateClient(credential);
client.Connect();
var storageServiceClient = client.CreateServiceClient<IStorageServiceClient>();
var storageAccount = storageServiceClient.GetStorageAccount();
運行此命令時,出現以下錯誤。
“找不到支持給定OpenStack實例的請求的服務的客戶端。”
我在這里做錯了什么?
我遇到了完全相同的問題,在進行了一些調試之后,我得出的結論是,Openstack .NET SDK將檢查url中的版本,並且“ v1.0”無效。
我絕不是這個問題的專家,因此請在依賴它們之前嘗試仔細檢查我的發現。
編輯:進一步閱讀后,我認為v1.0 url用於TempAuth身份驗證,並且看起來該SDK嘗試了Keystone身份驗證。 我找不到將SDK與TempAuth身份驗證結合使用的方法。
我真的很感謝人們對我的問題的回答!
我無法使用Rackspace API進行連接,並懷疑您可能是對的。 有點可悲的是,盡管在一個完全實現的OpenStack生態系統中有很多關於連接的文檔(Swift,Glance,Keystone,Newton等),但是對於那些試圖將艱巨的第一步邁向OpenStack的人來說,確實沒有足夠的文檔,而Swift是大多數人可能邁出的第一步。
對於那些剛開始的人來說,Swift是對象存儲引擎。 這對於存儲許多您通常以傳統方式存儲在Web服務器本身,FTP或網絡文件共享上的上傳文件非常有用。 基本上,您將“對象”(例如圖像,Word文檔,pdf,excel文檔)放入“容器”(例如文件夾)中,然后Swift將其存儲在服務器上並為您提供一個GUID來引用該文件。 通過HTTP訪問該文件。 例如;
HTTP://YOUR.swift.SERVER.ipaddress/THEcontainerNAME/THEguidRETURNED
和中提琴! 您的文件已送達!
那里有很多庫聲稱可以讓您訪問OpenStack Swift和所有其他OpenStack好東西(Newton,Glance等),但是它們通常假定您正在運行OpenStack的完整多租戶生態系統,並且其本地生來的租戶安裝並配置了管理軟件(也稱為梯形失真校正)(如果您像我一樣,則不需要)。
如果要通過C#快速訪問,請在引用OpenStack Swift API時使用HttpWebRequest和HttpResponse類( 單擊此處 )。 您將不得不深入了解添加和讀取HTTP標頭的詳細信息。 一旦掌握了竅門,就很容易了。
在網上使用HttpWebRequest類的例子很多,您只需要使用“ Google” -Foo並進行搜索即可。 不要浪費您的時間來查找如何使用C#和HttpWebRequest類連接到OpenStack Swift。 您正試圖被錯誤的例子和帶有未解決問題的表格所淹沒。 首先搜索使用HttpWebRequest類的簡單示例,搜索“使用httpwebrequest類c#下載文件”之類的內容,然后一旦看到如何使用該類,然后采用它來調用Swift,同時引用上面鏈接的API相當容易。 不要這樣做,要花幾個小時尋找可以復制並粘貼到應用程序中的代碼。 不幸的是,您將不得不閱讀...很爛-我知道。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.