--- title: "クラウドにパッケージを保存する方法" order: 6 hidden: true ---

この機能は、有料版もしくは体験版の ProGet でのみ使用できます。

ProGet はデフォルト設定の場合、パッケージファイルをディスクに保存します。しかし、クラウド（Amazon S3もしくはMicrosoft Azure Blob）に保存するように設定もできます。クラウドに保存すると以下 2 つのメリットがあります。

1. 必要な時にスケールできる。 必要なストレージのニーズを考慮する必要がなくなります。クラウドにパッケージを保存すれば、追加のストレージ容量を管理、インストール、プロビジョニングする必要がありません
2. ディザスターリカバリがシンプルになる。 Amazon S3とAzure Blobストレージは 両方とも冗長性があり、ファイルが自動的にクラウドに保存されます。そのため大容量のパッケージファイルを考慮した、複雑なディザイスターリカバリ（災害復旧）のプランを立てる必要がありません。

インターネットに接続するクラウドストレージは、ローカルディスクよりも処理速度が遅いです。しかし日常的に使うようでなれば、スピードの違いが気にならなくなります。

## フィードを設定してクラウドストレージを使う

デフォルトの設定で、ProGetはディスクベースのパッケージ保存（ディスク上にパッケージを蓄積）を行います。

フィードのパッケージ保存を変更するには、[Manage Feed (フィードの管理)] のページに移動し、パッケージ保存のヘッダーの横にある [change (変更)] をクリックします。ダイアログが開くので、Amazon S3 か Microsoft Azure を選んでください。

選択肢に Amazon S3 や MicrosoftAzure が表示されない場合は、 [Administration (管理)] > [Exstensions (拡張機能)] からそれぞれの拡張機能がインストールされていることをお確かめください。

パッケージ保存の種類を選ぶと、いくつかの設定オプションが表示されます。

## Amazon S3 オプション

####

[Option (オプション)] | [Description (詳細)]
--- | ---
[Instance role (インスタンスロール)] | アクセスキーとシークレットキーをオーバーライドする（ProGetがEC2インスタンスで稼働している場合にのみ表示）
[Access Key & Secret Access Key (アクセスキー・シークレットアクセスキー)] | Amazon Web Services のユーザー名・パスワードと同じ。Amazon IAM コンソールを使って作成
[Bucket Name (バケット名)] | S3上で設定され、パッケージ保存として使用されるストレージバケットの名前
[Target Path (ターゲットパス)] | 特定されたバケット内のパス。デフォルトは「/」
[Reduce Redundancy (冗長性の低下)] | ProGet が、スタンダードクラスに代わって [Reduced Redundancy (冗長性の低下)] ストレージクラスを使ったファイルの書き込みを要求。ストレージの料金価格が安くなる傾向がある。詳細はS3のドキュメンテーションにて閲覧が可能。
[Make Public (公開する)] | アップロードされたファイルに閲覧のパブリックパーミッションが与えられる（一般的に推奨されない）
[Encrypted (暗号化)] | ProGet がサーバー側の暗号化の使用をパッケージに要求（一般的に推奨されない）
[Region Endpoint (リージョンエンドポイント)] | バケットが配置されているリージョンエンドポイント（例：us-east-1）

## Azure Blob オプション

[Option (オプション)] | [Description (詳細)]
--- | ---
[Connection string (接続文字列)] | Microsoft Azure 接続文字列：　DefaultEndpointsProtocol=https;AccountName=account-name;AccountKey=account-key
[Container (コンテナ)] | アップロードされたファイルを受け取る Azure Blob コンテナ の名前
[Target Path (ターゲットパス)] | 特定の Azure Blob 内のパス

## 既存フィードのマイグレーション

フィードのパッケージ保存を変更した場合、パッケージファイルは移動しません。新しいパッケージストレージに同じパッケージがあることを確認するには、以下の手順を実行します。

1. キャッシュされたパッケージを削除する
2. ProGetサービスの停止
3. フィードのディスクパス（«old-disk-path»）に注意
4. «old-disk-path»に移動し、ディレクトリを [flatten (フラット)] にする（下の例を参照）
5. パッケージ保存を変更し、適切に設定する
6. 手順3の Drop Pathを «old-disk-path» に設定する
7. サービスを開始する
8. インポート後、ステップ3の空の «old-disk-path» を削除する

注釈：この手順が使えるのは Drop Path 対応のフィードタイプのみです。

## ディレクトリをフラットにするPowerShellスクリプトの例

シンプルなPowerShellコマンドでディレクトリをフラットにできます。

1. Windows Explorer上で、フラットにしたいディレクトリに移動する
2. [File (ファイル)] → Windows PowerShellを開く
3. Get-ChildItem -Recurse -File | ForEach-Object {Move-Item $_.FullName .}と入力

このコマンドは、サブフォルダ内すべてのファイルを実行されたディレクトリに移動します。他の場所にダメージを与える可能性を避けるため、必ず適切なディレクトリで実行してください。