簡體   English   中英

連接到OpenStack Swift僅使用Rackspace OpenStack.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM