適用対象: Developer
コンテナー タイプを作成、登録、承認した後で、コンテナーを作成して管理します。 コンテナーは、SharePoint Embedded の基本的なストレージ ユニットです。
コンテナー API を呼び出す前に、 認証と承認を構成 してください。
コンテナーについて
すべての SharePoint Embedded ファイルとドキュメントはコンテナーに保存されます。
コンテナー:
- 消費中の Microsoft 365 テナントに属しています。
- 不変コンテナーの種類 ID を持っています。
- アプリケーションのコンテンツを格納します。
- メンバーシップとアクセス許可の境界を定義します。
- Microsoft Graph 経由でアクセスします。
アーキテクチャの概要については、「 SharePoint Embedded アプリのアーキテクチャ」を参照してください。
ライフサイクルを知る
一般的なコンテナーのライフサイクルは次のとおりです。
- コンテナーを作成します。
- メンバーを追加または確認します。
- ファイルのアップロードと管理。
- コンテナー メタデータの読み取りまたは更新。
- コンテナーがアクティブでなくなったら、コンテナーをリサイクルします。
- 必要に応じて、リサイクルされたコンテナーを復元します。
- クリーンアップ中にコンテナーを完全に削除します。
続行: コンテンツ操作の ファイルのアップロード、ダウンロード、管理 。
前提条件
コンテナーを作成する前に、次のことを確認してください。
- コンテナーの種類が存在します。
- コンテナーの種類は、消費テナントに登録されています。
- このアプリには Microsoft Graph
FileStorageContainer.Selectedの同意があります。 - アプリには、操作のコンテナーの種類のアクセス許可があります。
- コンテナーの作成に必要なので、アプリは機密クライアントとしてトークンを取得します。
- 委任された呼び出しの場合、サインイン ユーザーは必要なコンテナー ロールを受け取ることができます。
- 評価版コンテナーの種類の場合、評価版の制限内に収まっています。
重要
試用版のコンテナーの種類では、アクティブなコンテナーとごみ箱内のコンテナーを含めて、最大 5 つのコンテナーを作成できます。
機密クライアントを使用してコンテナーを作成する
コンテナーを作成するには、 機密 クライアント アプリケーションが必要です。 機密クライアントは、クライアント シークレットや証明書などの資格情報を保持し、Web アプリのバックエンドやサービスなど、その資格情報を非公開にするコンポーネントからトークンを取得します。
パブリック クライアント アプリケーションからのトークンを使用するコンテナーの作成呼び出しは、エンド ユーザーがパブリック クライアント トークンにアクセスでき、アプリケーションに気づかれることなく再利用できるため失敗します。 パブリック クライアントには、シングルページ アプリ、モバイル アプリ、デスクトップ アプリが含まれます。
この要件は、委任された作成とアプリのみの作成の両方に適用されます。
- 代理作成の場合は、認証コード フローとクライアント資格情報を使用してトークンを取得し、バックエンドから Microsoft Graph を呼び出します。
- アプリのみの作成の場合は、常に機密であるクライアント資格情報フローでトークンを取得します。
アプリにパブリック クライアント フロントエンドがある場合は、クライアントから Microsoft Graph を呼び出すのではなく、機密バックエンド サービスを介してコンテナーの作成をルーティングします。
詳細については、「 パブリック クライアントおよび機密クライアント アプリケーション」を参照してください。
委任作成またはアプリのみの作成を選択する
ユーザーが作成を開始するとき、ユーザーが責任を持つ必要がある場合、または作成ユーザーがコンテナー所有者になる必要がある場合は、委任アクセスを使用します。
サービスがコンテナーをプロビジョニングし、ユーザーが存在せず、アプリにコンテナーの作成権限がある場合は、アプリ専用アクセスを使用します。
注:
委任呼び出しを使用して新しいコンテナーを作成するユーザーには、所有者ロールが自動的に割り当てられます。
コンテナーの作成
Microsoft Graph を使用して、登録したコンテナーの種類のファイル ストレージ コンテナーを作成します。
正規の API 図形については、「 fileStorageContainer の作成」を参照してください。
実装手順:
- 機密性の高いクライアントから有効な Microsoft Graph トークンを取得します。
- API で必要なターゲット コンテナーの種類情報を含めます。
- 作成要求を送信します。
- 返されたコンテナー ID を格納します。
- アプリに必要な表示メタデータを格納します。
- 委任されたシナリオのメンバーシップを割り当てまたは確認します。
ヒント
ビジネス オブジェクトと SharePoint Embedded コンテナーの間の永続的なリンクとして、アプリケーション データベースにコンテナー ID を格納します。
Visual Studio Code でコンテナーを作成する
試用版開発では、Visual Studio Code 拡張機能でコンテナーを作成できます。
- SharePoint Embedded ビューを開きます。
- 登録済みの試用版コンテナーの種類を展開します。
- コンテナ ーを右クリックします。
- [ コンテナーの作成] を選択します。
- 名前を入力してください。
- コンテナーの種類の下にコンテナが表示されることを確認します。
「 クイック スタート: VS Code で最初のアプリをビルドする」 を参照してください。
コンテナーの一覧表示
コンテナーを一覧表示して、使用可能なコンテナーを表示したり、プロビジョニングを検証したり、メンテナンスを実行したりします。
正規の API 図形については、「 コンテナーの一覧表示」を参照してください。
コンテナーを一覧表示する場合:
- サービス インベントリ シナリオにはアプリのみのアクセスを使用します。
- ユーザー コンテキストが適切な場合にのみ、委任アクセスを使用してください。
- ページングを処理します。
- 結果をアプリケーション データにマップします。
注:
委任リスト コンテナーは現在、ユーザーが OneDrive を持っていない場合に 403 Forbidden を返します。 この依存関係は、アプリ専用のリスト呼び出しには適用されません。
コンテナーの取得
操作する前に最新のメタデータが必要な場合は、コンテナーを取得します。
この操作を使用して、コンテナーの存在を確認し、表示プロパティを読み取り、コンテナーの種類を確認し、ファイル操作の前に状態をチェックし、復元を確認します。
fileStorageContainer リソース型に実装をリンクします。
コンテナー メタデータの更新
サポートされているプロパティが変更された場合、メタデータを更新します。
更新前:
- アプリにコンテナーの種類
Writeアクセス許可があることを確認します。 - 委任されたユーザーに適切なロールが割り当てられていることを確認します。
- 現在のコンテナーの状態を読み取ります。
- 意図した変更のみを適用します。
- 応答を検証します。
コンテナーの削除またはリサイクル
コンテナーがアクティブでなくなったら、コンテナーをリサイクルまたは削除します。
削除前:
- 呼び出し元にアクセス許可があることを確認します。
- アプリにビジネス参照がアーカイブされていることを確認します。
- コンテナを最初にリサイクルするかどうかを決定します。
- リサイクルされたコンテナーを復元する方法をユーザーに伝えます。
Visual Studio Code 拡張機能には、トライアル開発用のリサイクルおよび回復機能が含まれています。
リサイクルされたコンテナーを復元する
復元フローでは、次のようにする必要があります。
- リサイクルされたコンテナを特定します。
- 呼び出し元にアクセス許可があることを確認します。
- コンテナーを復元します。
- アプリケーションの状態を更新します。
- ファイルとメタデータが利用可能であることを確認します。
- ユーザーに通知します。
重要
試用版コンテナーの種類の場合、ごみ箱内のコンテナーは引き続き 5 つのコンテナー制限にカウントされます。
コンテナーの完全な削除
コンテナーが不要になったことが確実な場合にのみ、完全に削除します。
コンテナー タイプ自体を削除する前に、削除されたコンテナーも含めて、コンテナー タイプのすべてのコンテナーを削除する必要があります。
試用版のクリーンアップ、テスト データの削除、コンテナーの種類の廃止、またはライフサイクル要件を満たすには、完全な削除を使用します。
ライフサイクル操作の検証
スモーク テストを作成します:
- テスト コンテナーを作成します。
- ID で取得します。
- コンテナーを一覧表示し、表示されていることを確認します。
- サポートされているメタデータ値を更新します。
- 小さいファイルをアップロードします。
- コンテナーをリサイクルまたは削除します。
- サポートされている場合は復元します。
- クリーンアップ中に完全に削除します。
ライフサイクルの問題のトラブルシューティング
| 現象 | チェック |
|---|---|
| 作成に失敗する | 登録と Create のアクセス許可。 |
| ブラウザー、モバイル、またはデスクトップ アプリからの作成に失敗する | トークンはパブリック クライアントから取得されます。 代わりに機密クライアントから取得してください。 |
| 委任された作成に失敗する | ユーザーの同意、機密クライアント トークンの取得、ロール割り当ての動作。 |
| 委任されたユーザーの一覧に失敗する | 認証記事に記載されている OneDrive の依存関係。 |
| 削除に失敗する |
Delete アクセス許可とユーザー所有者ロール。 |
| 試用版の作成に失敗する | アクティブ コンテナーとリサイクル コンテナーが制限に達している可能性があります。 |
| コンテナーの種類の削除に失敗しました | アクティブおよび削除されたすべてのコンテナーを最初に削除する必要があります。 |
次の手順
[ ファイルのアップロード、ダウンロード、管理] でファイル操作を追加します。