このガイドでは、Google Drive API を使用して Google ドライブでファイルを作成および管理する方法について説明します。
ファイルを作成
メタデータやコンテンツを含まないファイルをドライブに作成するには、パラメータなしで files リソースの create メソッドを使用します。
ファイルを作成すると、メソッドは files リソースを返します。ファイルには、kind(drive.file)、id、name(「Untitled」)、mimeType(application/octet-stream)が割り当てられます。uploadType は必須としてマークされていますが、デフォルトは media であるため、実際に指定する必要はありません。
ドライブのファイル制限について詳しくは、ファイルとフォルダの制限をご覧ください。
fields パラメータを使用する
レスポンスで返すフィールドを指定する場合は、files リソースの任意の方法で fields システム パラメータを設定できます。fields パラメータを省略すると、サーバーはメソッド固有のデフォルトのフィールド セットを返します。たとえば、list メソッドは、各ファイルの kind、id、name、mimeType、resourceKey フィールドのみを返します。別のフィールドを返すには、特定のフィールドを返すをご覧ください。
ファイルのオーナーシップ
Drive API を使用してファイルを作成する場合、オーナー権限は、アプリで使用される認証情報に応じて次のように異なります。
ユーザー アカウント(OAuth 2.0): アプリケーションがユーザーの代わりに認証を行う場合、そのユーザーがファイルの所有者になります。ファイルは、[マイドライブ] フォルダまたは指定したフォルダに保存されます。ストレージの割り当てが消費されます。
サービス アカウント: アプリケーションがサービス アカウントを使用して認証する場合、サービス アカウントがファイルの所有者になります。ファイルは、サービス アカウント専用のドライブ ストレージに保存されます。明示的に共有しない限り、ファイルは他のドライブ ストレージ アカウントに表示されません。サービス アカウントが削除されると、そのアカウントが所有するすべてのファイルが直ちに削除されます。
サービス アカウントを使用しているが、特定のユーザー アカウントにファイルを所有させたい場合は、ドメイン全体の委任を使用します。これにより、サービス アカウントはユーザーの権限を借用して、ユーザーに代わってファイルを作成できます。詳細については、ドメイン全体の権限をサービス アカウントに委任するをご覧ください。
ファイル権限の詳細については、ファイル、フォルダ、ドライブを共有するをご覧ください。
ファイルで使用する ID を生成する
files リソースの generateIds メソッドを使用すると、ドライブでファイルやフォルダを作成またはコピーする際に使用できる一意のファイル ID を事前に生成できます。これは、ドライブに自動的に割り当てさせるのではなく、アプリからファイル ID を制御する必要がある場合に便利です。
生成される ID の数は、count クエリ パラメータを使用して設定できます。count が設定されていない場合、デフォルトで 10 が返されます。リクエストできる ID の最大数は 1,000 個です。
ID を使用できる space と、ID を使用できるアイテムの type を指定することもできます。
ID が生成されると、id フィールドを介して create メソッドまたは copy メソッドに渡すことができます。これにより、作成またはコピーされたファイルが所定の ID を使用することが保証されます。
ファイルが正常に作成またはコピーされると、以降の再試行では 409
Conflict HTTP ステータス コード レスポンスが返され、重複するファイルは作成されません。
事前生成された ID は、application/vnd.google-apps.drive-sdk と application/vnd.google-apps.folder の MIME タイプを除き、Google Workspace ファイルの作成ではサポートされていません。同様に、Google Workspace ファイル形式への変換を参照するアップロードもサポートされていません。
メタデータのみのファイルを作成する
メタデータのみのファイルにはコンテンツが含まれていません。メタデータは、ファイルを説明するデータ(name、mimeType、createdTime など)です。name などのフィールドはユーザーに依存せず、各ユーザーで同じように表示されますが、viewedByMeTime などのフィールドにはユーザー固有の値が含まれます。
メタデータのみのファイルの例としては、MIME タイプが application/vnd.google-apps.folder のフォルダがあります。詳しくは、フォルダを作成しデータを入力するをご覧ください。別の例として、MIME タイプ application/vnd.google-apps.shortcut のドライブ上の別のファイルを指すショートカットがあります。詳しくは、ドライブ ファイルへのショートカットを作成するをご覧ください。
サムネイル画像を管理する
サムネイルは、ユーザーがドライブのファイルを識別するのに役立ちます。ドライブでは、一般的なファイル形式のサムネイルを自動的に生成できます。また、アプリで生成したサムネイル画像を提供することもできます。詳しくは、サムネイルをアップロードするをご覧ください。
既存のファイルをコピーする
ファイルをコピーし、リクエストされた更新を適用するには、files リソースで copy メソッドを使用します。コピーする fileId を見つけるには、list メソッドを使用します。
パッチ セマンティクスを使用して更新を適用できます。つまり、リソースの部分的な変更を行うことができます。リクエストで、変更するフィールドを明示的に設定する必要があります。リクエストに含まれていないフィールドは、既存の値が保持されます。詳細については、部分リソースの操作をご覧ください。
generateIds メソッドを使用すると、コピーされたファイルのファイル ID を事前に設定できます。詳細については、ファイルで使用する ID を生成するをご覧ください。
呼び出しを承認するには、適切な Drive API スコープを使用する必要があります。ドライブのスコープについて詳しくは、Google Drive API のスコープを選択するをご覧ください。
制限事項と考慮事項
ファイルのコピーを準備する際は、次の制限事項と考慮事項に注意してください。
権限
filesリソースのDownloadRestrictionsMetadataオブジェクトは、ファイルをコピーできるユーザーを決定します。詳しくは、他のユーザーがファイルをダウンロード、印刷、コピーできないようにするをご覧ください。capabilities.canCopyフィールド リソースは、ユーザーがファイルをコピーできるかどうかを決定します。詳細については、ファイル機能についてをご覧ください。- コピーを作成したユーザーが、コピーされたファイルの所有者になります。ソースファイルの他の共有設定は複製されません。コピーが共有フォルダに作成された場合、そのフォルダの権限が継承されます。
- コピーされたファイルのオーナー権限が変更され、コピー元のファイルの共有設定がコピーに継承されないことがあります。これらの設定をリセットする必要がある場合があります。
ファイル管理:
- サードパーティのショートカットなど、コピーできないファイルもあります。
- ファイルをコピーできるのは 1 つの親フォルダのみです。複数の親を指定することはできません。
parentsフィールドが指定されていない場合、ファイルは検出可能な親をソースファイルから継承します。 - フォルダはファイルの一種ですが、フォルダをコピーすることはできません。代わりに、移行先フォルダを作成し、既存のファイルの
parentsフィールドを移行先フォルダに設定します。その後、元のソースフォルダを削除できます。 - 新しいファイル名が指定されていない限り、
copyメソッドは元のファイルと同じ名前のファイルを生成します。 copyを過度に使用すると、ドライブ API の割り当て上限を超える可能性があります。詳細については、使用制限をご覧ください。
関連トピック
次の手順をお試しください。
ファイルの作成時または更新時にファイルデータをアップロードするには、ファイルデータをアップロードするをご覧ください。
特定のフォルダにファイルを作成するには、特定のフォルダにファイルを作成するをご覧ください。
ファイルを移動するには、フォルダ間でファイルを移動するをご覧ください。
ファイル メタデータの操作については、ファイル メタデータを管理するをご覧ください。
ファイルを削除するには、ファイルとフォルダをゴミ箱に移動または削除するをご覧ください。