1

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 の特定のインスタンスに対して要求されたサービスをサポートするクライアントが見つかりませんでした。」

ここで何が間違っていますか?

4

2 に答える 2

0

私の質問に対する人々の反応に本当に感謝しています!

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 ヘッダーの追加と読み取りの詳細にまで踏み込む必要があります。コツをつかめば、すべて簡単なことです。

Web 上には HttpWebRequest クラスを使用する例がたくさんあります。「Google」-Foo を使用して検索するだけです。C# と HttpWebRequest クラスを使用して OpenStack Swift に接続する方法を調べるのに時間を無駄にしないでください。あなたは悪い例や未回答の質問をフォームに殺到させようとしています。HttpWebRequest クラスを使用する簡単な例を検索することから始めて、「httpwebrequest クラス c# を使用してファイルをダウンロードする」などを検索し、クラスの使用方法を確認したら、それを採用して Swift を呼び出し、上記のリンク先の API を参照する必要があります。とても簡単です。私がしたことをしないでください。コピーしてアプリケーションに貼り付けるだけのコードを探すのに何時間も費やしてください。残念ながら、あなたは読まなければならないでしょう...それはひどいです-私は知っています.

于 2014-11-29T00:48:33.140 に答える