このガイドでは、Google Drive API を使用して Google ドライブでファイルを作成および管理する方法について説明します。
ファイルを作成
メタデータやコンテンツを含まないファイルをドライブに作成するには、パラメータを指定せずに files
リソースで create
メソッドを使用します。
ファイルを作成すると、メソッドは files
リソースを返します。ファイルには、kind
(drive.file
)、id
、name
(「無題」)、mimeType
(application/octet-stream
)が割り当てられます。uploadType
は必須としてマークされていますが、デフォルトは media
であるため、実際に指定する必要はありません。
ドライブのファイル制限の詳細については、ファイルとフォルダの制限をご覧ください。
fields パラメータを使用する
レスポンスで返すフィールドを指定する場合は、files
リソースの任意のメソッドを使用して fields
システム パラメータを設定できます。fields
パラメータを省略すると、サーバーはメソッドに固有のデフォルトのフィールド セットを返します。たとえば、list
メソッドは、各ファイルの kind
、id
、name
、mimeType
、resourceKey
フィールドのみを返します。別のフィールドを返すには、特定のフィールドを返すをご覧ください。
ファイルで使用する 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-sdk
と application/vnd.google-apps.folder
の MIME タイプを除き、事前生成された ID は 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 の割り当て上限を超える可能性があります。詳細については、使用制限をご覧ください。
関連トピック
以下に、次の手順をいくつかご紹介します。
ファイルの作成時または更新時にファイルデータをアップロードするには、ファイルデータをアップロードするをご覧ください。
特定のフォルダにファイルを作成するには、特定のフォルダにファイルを作成するをご覧ください。
ファイルを移動するには、フォルダ間でファイルを移動するをご覧ください。
ファイル メタデータの操作については、ファイル メタデータを管理するをご覧ください。
ファイルを削除するには、ファイルとフォルダをゴミ箱に移動または削除するをご覧ください。