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