- ドライブが管理するメタデータ(名前、タグ、インデックス可能なテキスト、サムネイル)と、他の Google Cloud サービスに属するメタデータについて理解します。
- Drive API を使用してメタデータを照会および調整し、ファイルをアップロードする前に EXIF と埋め込みデータを消去します。
- 制限とルール(サムネイル、インデックス可能なテキスト、拡張機能)を尊重し、ローカル REST テストのために gcloud で認証します。
ファイルのメタデータを制御したいですか? Googleドライブ どこから始めたらいいのか分からない?ここでは詳しく説明します。 Googleドライブのメタデータを効果的かつ安全に削除する方法 (アップロードされたファイルのメタデータ)。また、Google がファイル名、サイズ、権限にどのような制限を課しているかについても説明します。
このガイドでは、Google ドライブのメタデータに関して、何を「削除」できるか(できないか)を完全かつ現実的に理解できます。
ドライブで変更または「削除」できるもの
これらは、 メタデータ Google ドライブにアップロードされたファイルから削除できるもの:
名前と拡張子: API経由でファイルを作成する際は、名前フィールドに拡張子を指定することをお勧めします(例:"cat.jpg")。拡張子を指定しない場合でもDriveはMIMEタイプから推測できますが、自分で定義することをお勧めします。以降のレスポンスでは、読み取り専用のfileExtensionにnameから取得した拡張子が付与される場合があります。ユーザーがファイルをダウンロードすると、Driveはタイトル(とその拡張子)から最終的なファイル名を作成します。
- インデックス可能なテキスト (contentHints.indexableText): Drive は、一般的なドキュメントやファイル形式(PDF、OCR 対応画像など)をデフォルトでインデックス化します。アプリで他の形式(描画、動画、ショートカットなど)を保存する場合は、インデックス化可能なテキストを提供することで検索性を向上させることができます。このテキストは HTML として処理されます。タグを含む文字列を渡した場合、タグ属性ではなくテキストコンテンツがインデックス化されます。contentHints.indexableText には 128KB のサイズ制限があり、保存するたびに更新してファイルとの関連性を保つことをお勧めします。
- サムネイル (contentHints.thumbnail): ドライブは多くの種類のサムネイルを生成しますが、自動生成されない形式の場合は、ファイルの作成時または更新時に独自のサムネイルをアップロードできます。画像はURLセーフなbase64形式と対応するmimeTypeに設定する必要があります。重要なルール:サポートされる形式はPNG、GIF、またはJPGです。推奨幅は1600ピクセル(最小220ピクセル)、最大サイズは2MBです。ファイルの内容が変更されるとサムネイルは無効になりますが、メタデータの変更は無効になりません。
- サムネイルへのアクセス: ThumbnailLinkフィールドは短縮URLを返します。このURLは、アプリがファイルの読み取り権限を持っている場合にのみアクセスできます(公開されていない場合は、認証情報を使用してリクエストする必要があります)。特定のファイル、または種類別にフィルタリングされたリストを検索できます。
- ラベル: Driveでは、ファイルにラベルを関連付けることができます。ラベルを見つけるにはfiles.listLabelsを使用し、ラベルを変更するには対応するlabelIdとfileIdを参照する必要があります。このメカニズムは、コンテンツに触れることなく、分類したり、必要に応じて不要な分類を「クリーンアップ」したりするのに役立ちます。
Googleドライブのメタデータを削除する: ファイル自体から「隠された」メタデータ
Google ドライブ内のメタデータ(写真の EXIF や PDF に埋め込まれたデータなど)を削除する魔法のボタンはありません。ドライブは独自のメタデータを管理しますが、ファイル内のメタデータはそれを作成したツールに依存します。
推奨される方法は ドライブにアップロードする前にファイルをクリーンアップします。 画像やドキュメントのプロパティからEXIFデータを削除するシステムツールや専用アプリを使用する。こうすることで、ドライブに保存したコンテンツは「サニタイズ」された状態で届きます。
すでにメタデータが埋め込まれたファイルをアップロードしている場合は、Googleドライブでメタデータを削除するのではなく、 ダウンロードしてクリーンアップし、再アップロードし、 該当する場合は元のファイルを置き換えます。PDFや画像の場合、作成者、場所、編集履歴を保護したい場合によく使用されます。
ドライブの特定の部分については、 名前、ラベル、コンテンツヒント(インデックス可能なテキスト/サムネイル)の調整に焦点を当てます。 管理下にあるコンテンツ。アクセス権限も管理すれば、閲覧権限を持つユーザーがアクセスできるサムネイルリンクなど、表示されるメタデータの露出も抑えられます。
その事を忘れるな ドライブのメタデータのみを変更しても、EXIF または内部プロパティは削除されません。 したがって、戦略としては、ファイルの事前クリーニングと、ドライブで操作できるきめ細かいメタデータ管理を組み合わせる必要があります。
Google Cloud でよく混同されるメタデータ: VM、gcloud、制限
Google Cloud をご利用の場合、多くの 「メタデータ」に関するガイドは、実際にはドライブではなく、Compute Engine または Cloud Storage を指しています。 それでも、調査中に混乱しないように、これらの点を知っておく必要があります。
基本的な gcloud CLI 設定
Google Cloud CLI をインストールしたら、次のコマンドで初期化します。
gcloud init
以下の最新バージョンを使用していることを確認することが重要です。
gcloud components update
外部IDプロバイダーを使用する場合は、 gcloud を使用する前に、フェデレーション ID でログインしてください。 特に、ローカル環境から REST 呼び出しを行うために認証を行う場合は、この方法が役立ちます。REST API サンプルでは、gcloud で設定した認証情報を使用できます。
VM
権限とロール (Compute Engine): VM 上のカスタムメタデータを追加、更新、または削除するには、適切な IAM 権限が必要です。一般的な例としては、次のようなものがあります。
- VM でサービス アカウントを使用する場合: 許可
iam.serviceAccounts.actAsサービスまたはプロジェクト アカウントで。 - プロジェクトメタデータ:
compute.projects.getycompute.projects.setCommonInstanceMetadata. - ゾーンメタデータ:
compute.instanceSettings.getycompute.instanceSettings.update該当エリアについて - インスタンスメタデータ:
compute.instances.getycompute.instances.setMetadata.
制限事項
Google ドライブでメタデータを削除しようとしたときに遭遇した主な制限は次のとおりです。
- サイズ制限 (Compute Engine): メタデータエントリの合計サイズは512KBに制限されています。各キーは128バイト、各値は256KBに制限されています。例えば、ssh-keysキーを使用して256KBの制限を超えた場合、クリーンアップするまでキーを追加することはできません。
- 大文字と小文字: キーは大文字と小文字が区別されます。ブール値を除き、値も同様です。zonalでは、大文字と小文字のみが異なる2つのキー(zonal-metadata-keyとZONAL-METADATA-KEY)を作成することはできません。
- ゾーンメタデータ: gcloud または REST を使用して設定または削除できます。SSH 認証鍵(ssh-keys)にはゾーン値を定義できません。論理 project/ ディレクトリ内で、同じ鍵に対してプロジェクトレベルの値とゾーン値が定義されている場合、そのゾーンではゾーン値が優先されます。
- サポートされているブール値: TRUE/FALSE に加えて、Y/Yes/1 および N/No/0 (大文字と小文字は区別されません) も使用できます。
- 構成スコープ (Compute Engine):
- ドラフト: プロジェクト内のすべての VM に共通のメタデータ。
- ゾーン: 特定のゾーン内のすべての VM に影響し、プロジェクトの値を上書きできるエントリ。
- 実例: 特定の VM (作成中または既存のもの) のメタデータ。

ドライブのサムネイル、インデックス作成、メタデータの取得(REST とベスト プラクティス)
Googleドライブでメタデータを削除する際のサムネイルの役割と、それらを復元する最適な方法について見ていきましょう。
- オンプレミスの REST の認証: REST サンプルを自分のマシンからテストする場合は、gcloud で設定された認証情報を使用してください。これにより、Drive API 呼び出しは、既に設定されている ID と権限を尊重します。
- カスタムサムネイルのアップロード: contentHints.thumbnail に、URL セーフな base64 画像と適切な mimeType の XNUMX つのフィールドを設定します。Drive がサムネイルを自動生成できる場合は、独自のサムネイルが使用され、ユーザーが指定したサムネイルはスキップされます。そうでない場合は、ユーザーが指定したサムネイルが使用されます。
ドライブのサムネイルの主なルール:
- 形式: PNG、GIF、または JPG。
- 推奨幅: 1600 ピクセル (最小 220 ピクセル)。
- 最大サイズ: 2 MB。
- 関連性がある場合は、保存するたびにサムネイルを更新します。
重要事項 無効化: ファイルの内容が変更されるとサムネイルは無効になりますが、メタデータの変更は無効になりません。タグまたは名前のみを変更した場合、ファイル自体を変更しない限り、新しいサムネイルは表示されません。
インデックス可能なテキスト
流行語を使って検索を「騙す」のはやめましょう。ユーザーがそのファイルを検索するのに適した概念や用語を捉え、 128KBの制限を確認してください。 内容が大幅に変更されるたびに更新してください。
一貫した名前と拡張子を適用するアップロードする際は、可能な限りファイル名に拡張子を含めてください。拡張子がない場合、ドライブはMIMEを使って推測しようとします。ファイル名を明確にすることで、曖昧さを避け、拡張子の検索を容易にすることができます。
ドライブ内のタグ
ラベルを変更するには、必要な識別子をメモしてください。ラベルのlabelIdとファイルのfileIdが必要です。まずfiles.listLabelsでそれらをリストし、それから対応する変更を対象ファイルに適用します。
// Al modificar etiquetas de un archivo en Drive:
// - labelId: identificador de la etiqueta a cambiar
// - fileId: identificador del archivo al que aplicas la etiqueta
// Usa files.listLabels para localizarlas antes de actualizar.
覚えておいてください、 ドライブが中心ではありますが、多くの開発ではドライブとクラウドストレージや他のサービスを組み合わせています。 したがって、オブジェクト属性を検査するためのストレージの例が表示されます。
// Ejemplo en Go para obtener atributos de un objeto en Cloud Storage (no Drive)
// e imprimir metadatos como ContentType, CacheControl, MD5, etc.
// Útil si tu flujo sube primero a Storage y luego a Drive.
import (
"context"
"fmt"
"io"
"time"
"cloud.google.com/go/storage"
)
func getMetadata(w io.Writer, bucket, object string) (*storage.ObjectAttrs, error) {
ctx := context.Background()
client, err := storage.NewClient(ctx)
if err != nil { return nil, fmt.Errorf("storage.NewClient: %w", err) }
defer client.Close()
ctx, cancel := context.WithTimeout(ctx, 10*time.Second)
defer cancel()
o := client.Bucket(bucket).Object(object)
attrs, err := o.Attrs(ctx)
if err != nil { return nil, fmt.Errorf("Object(%q).Attrs: %w", object, err) }
fmt.Fprintf(w, "Bucket: %v\n", attrs.Bucket)
fmt.Fprintf(w, "CacheControl: %v\n", attrs.CacheControl)
fmt.Fprintf(w, "ContentDisposition: %v\n", attrs.ContentDisposition)
fmt.Fprintf(w, "ContentEncoding: %v\n", attrs.ContentEncoding)
fmt.Fprintf(w, "ContentLanguage: %v\n", attrs.ContentLanguage)
fmt.Fprintf(w, "ContentType: %v\n", attrs.ContentType)
fmt.Fprintf(w, "Crc32c: %v\n", attrs.CRC32C)
fmt.Fprintf(w, "Generation: %v\n", attrs.Generation)
fmt.Fprintf(w, "KmsKeyName: %v\n", attrs.KMSKeyName)
fmt.Fprintf(w, "Md5Hash: %v\n", attrs.MD5)
fmt.Fprintf(w, "MediaLink: %v\n", attrs.MediaLink)
fmt.Fprintf(w, "Metageneration: %v\n", attrs.Metageneration)
fmt.Fprintf(w, "Name: %v\n", attrs.Name)
fmt.Fprintf(w, "Size: %v\n", attrs.Size)
fmt.Fprintf(w, "StorageClass: %v\n", attrs.StorageClass)
fmt.Fprintf(w, "TimeCreated: %v\n", attrs.Created)
fmt.Fprintf(w, "Updated: %v\n", attrs.Updated)
fmt.Fprintf(w, "Event-based hold enabled? %t\n", attrs.EventBasedHold)
fmt.Fprintf(w, "Temporary hold enabled? %t\n", attrs.TemporaryHold)
fmt.Fprintf(w, "Retention expiration time %v\n", attrs.RetentionExpirationTime)
fmt.Fprintf(w, "Custom time %v\n", attrs.CustomTime)
fmt.Fprintf(w, "Retention: %+v\n", attrs.Retention)
fmt.Fprintf(w, "\n\nMetadata\n")
for key, value := range attrs.Metadata {
fmt.Fprintf(w, "\t%v = %v\n", key, value)
}
return attrs, nil
}
Google ドライブでのファイルの削除とメタデータの削除
欲しいものがあれば ドライブからファイルを削除する所有者は、ウェブからファイルを右クリックして「ゴミ箱へ移動」を選択することで、ファイルをゴミ箱に移動できます。所有者が他のユーザーの場合は、自分のビューからファイルを「削除」することしかできず、他のユーザーは引き続きファイルを閲覧できます。
へ ファイルを完全に削除するには、ゴミ箱を空にするか、完全に削除するオプションを使用する必要があります。 この場合、復元することはできません。これ自体は、他のファイルから「メタデータを削除」するものではなく、そのアイテムにのみ適用されます。
Googleドライブでは、自分が所有していないファイルのメタデータを削除することはできません。 なぜなら、それらのコントロールは、それらを作成したユーザー、または組織内でより高い権限を持つユーザーに属しているからです。このような場合は、アクセス権または可視性を削除するだけで済みます。
メタデータとの関連付け: ファイルを削除すると、ドライブ内のメタデータも削除されます。 ただし、システムに残っている他のコピー内のメタデータや、他のドキュメントに埋め込まれたメタデータには影響しません。
上記のすべてにより、あなたはうまく区別できるようになります ドライブが管理するメタデータ(名前、タグ、検索ヒント、サムネイル)REST 経由でクエリを実行する方法、アップロード前に埋め込みデータをクリーンアップするためのベスト プラクティス、他のコンテキストで「メタデータ」について説明している Google Cloud ドキュメントに遭遇したときに適用される制限と権限について説明します。
テクノロジーとインターネット問題を専門とする編集者で、さまざまなデジタル メディアで 10 年以上の経験があります。私は、電子商取引、通信、オンライン マーケティング、広告会社で編集者およびコンテンツ作成者として働いてきました。経済、金融、その他の分野のウェブサイトにも執筆しています。私の仕事は私の情熱でもあります。さて、私の記事を通じて、 Tecnobits, 私は、私たちの生活を向上させるために、テクノロジーの世界が私たちに提供するすべてのニュースや新しい機会を毎日調査しようとしています。