ファイルの作成と管理

このガイドでは、Google Drive API を使用して Google ドライブでファイルを作成および管理する方法について説明します。

ファイルを作成

メタデータやコンテンツを含まないファイルをドライブに作成するには、パラメータを指定せずに files リソースで create メソッドを使用します。

ファイルを作成すると、メソッドは files リソースを返します。ファイルには、kinddrive.file)、idname(「無題」)、mimeTypeapplication/octet-stream)が割り当てられます。uploadType は必須としてマークされていますが、デフォルトは media であるため、実際に指定する必要はありません。

ドライブのファイル制限の詳細については、ファイルとフォルダの制限をご覧ください。

fields パラメータを使用する

レスポンスで返すフィールドを指定する場合は、files リソースの任意のメソッドを使用して fields システム パラメータを設定できます。fields パラメータを省略すると、サーバーはメソッドに固有のデフォルトのフィールド セットを返します。たとえば、list メソッドは、各ファイルの kindidnamemimeTyperesourceKey フィールドのみを返します。別のフィールドを返すには、特定のフィールドを返すをご覧ください。

ファイルで使用する ID を生成する

files リソースの generateIds メソッドを使用すると、ドライブでファイルやフォルダを作成またはコピーする際に使用できる一意のファイル ID を事前に生成できます。これは、ドライブに自動的に割り当てさせるのではなく、アプリからファイル ID を制御する必要がある場合に便利です。

生成される ID の数は、count クエリ パラメータを使用して設定できます。count が設定されていない場合、デフォルトで 10 が返されます。リクエストできる ID の最大数は 1,000 個です。

ID を使用できる space と、ID を使用できるアイテムの type を指定することもできます。

ID が生成されると、id フィールドを介して create メソッドまたは copy メソッドに渡すことができます。これにより、作成またはコピーされたファイルが所定の ID を使用することが保証されます。

ファイルが正常に作成またはコピーされると、以降の再試行では 409 Conflict HTTP ステータス コード レスポンスが返され、重複するファイルは作成されません。

application/vnd.google-apps.drive-sdkapplication/vnd.google-apps.folderMIME タイプを除き、事前生成された ID は Google Workspace ファイルの作成ではサポートされていません。同様に、Google Workspace ファイル形式への変換を参照するアップロードもサポートされていません。

メタデータのみのファイルを作成する

メタデータのみのファイルにはコンテンツが含まれていません。メタデータは、ファイルを説明するデータ(namemimeTypecreatedTime など)です。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 の割り当て上限を超える可能性があります。詳細については、使用制限をご覧ください。

以下に、次の手順をいくつかご紹介します。