GoogleDriveの情報を出力する「GoogleDriveManager」

【更新履歴】

  2025/7/14 バージョン1.0公開。
  2026/5/13 バージョン1.1公開。(MD5取得、TSA取得を追加)
  2026/5/13 バージョン1.2公開。(ツリービュー表示を追加)
  2026/5/14 バージョン1.3公開。
  2026/5/14 バージョン1.4公開。
  2026/5/14 バージョン1.5公開。
  2026/5/15 バージョン1.6公開。
  2026/5/17 バージョン1.7公開。


画像
設定
画像
Google Drive
画像
ログ出力
画像
タイムスタンプ履歴
画像
アップロード画面 - プロパティ
画像
アップロード画面 - ログ出力
画像
アップロード画面 - 履歴
画像
検証画面
画像
検証画面 - 検証成功


・このツールは、
 GoogleDriveのマイドライブ内のファイルの情報を
 一括してテキストファイルに出力するために作成したものです。

・バージョン1.1からは、MD5ハッシュキーの取得にも対応し、
 タイムスタンプの取得機能も追加されました。

出力した結果はこちら。↓

[Root] GoogleDriveManager1.0 (ID: 1_8ZtKlO2boYeOWTMUXjBl7-LKmi8qo_x)
├── Debug.zip (ID:1c3pt6_RNuixcM24Vi2iCpgzAhXk3QtZ8) 作成日時:[ 2025年 07月 14日 11時 54分 ] 最終更新日時:[ 2024年 07月 14日 11時 53分 ] サイズ:1279354 バージョン:2 非公開 プレビューURL:https://drive.google.com/file/d/1c3pt6_RNuixcM24Vi2iCpgzAhXk3QtZ8/view?usp=drivesdk ダウンロードURL:https://drive.google.com/uc?id=1c3pt6_RNuixcM24Vi2iCpgzAhXk3QtZ8&export=download 所有者:System.Collections.Generic.List`1[Google.Apis.Drive.v3.Data.User] 最終更新者:Google.Apis.Drive.v3.Data.User 説明:
└── Release.zip (ID:1JyT-ircr2XFVUw2lx5Hy9NcPTcfG4Q5_) 作成日時:[ 2025年 07月 14日 12時 13分 ] 最終更新日時:[ 2025年 07月 14日 12時 13分 ] サイズ:1277496 バージョン:2 非公開 プレビューURL:https://drive.google.com/file/d/1JyT-ircr2XFVUw2lx5Hy9NcPTcfG4Q5_/view?usp=drivesdk ダウンロードURL:https://drive.google.com/uc?id=1JyT-ircr2XFVUw2lx5Hy9NcPTcfG4Q5_&export=download 所有者:System.Collections.Generic.List`1[Google.Apis.Drive.v3.Data.User] 最終更新者:Google.Apis.Drive.v3.Data.User 説明:

※「作成日時」というのは、
 最初にアップロードした日時で変更できません。

※「最終更新日時」というのは、
 ファイルが内部に記録している日時ですから、
 ファイル情報を操作すれば変更が可能です。

・ダウンロードされる方はこちら。↓


■概要


・このツールは、Google Drive上のファイルやフォルダが 
 「その日時に確実に存在し、改ざんされていないこと」を
 暗号学的に証明し、証拠の保全と、タイムスタンプの管理を行います。

🌟 主な機能と特徴


◆強固な存在証明(RFC 3161準拠)

・Google Drive上にアップロードされているファイルの
 メタデータ(更新日時や、MD5ハッシュなど)を取得して
 テキストファイルに出力し、
 それを「FreeTSA」(国際標準規格に基づく無料のタイムスタンプ局)に
 送信して、その暗号証明書(.tsrファイル)を自動的に取得します。

・作成した作品が「後から改ざんしたのでは?」と疑われた場合に、
 これが強力な証拠となるわけです。

◆ファイルはダウンロード不要

・このツールでは、
 Google Drive側で計算されたハッシュ値を利用するため、
 数GBあるような動画ファイルや大量のソースコードでも、
 ローカル環境にダウンロードすることなく
 一瞬で証明書を発行できます。

※万が一、GoogleDrive上のデータが消えてしまった場合、
 アップロードしたファイルは、
 ローカル環境でバックアップを取っておかないと
 ハッシュコードを用いた証明ができなくなります。

高速な「遅延読み込み」ツリービュー

・数万ファイルが保存されたドライブでも、フリーズしません。

・Windowsエクスプローラーのように、
 フォルダをクリックして展開した瞬間に
 中身だけをAPIから取得する遅延ロードを実装しています。

◆一元化された履歴・備忘録マネージャー

・いつ、どのファイルの証明書を取ったのかは
 「タイムスタンプ履歴」タブに自動的に記録されます。

・データグリッド上で直接コメントを書き込んで保存でき、
 過去の証明記録を簡単に管理できます。

◆安全なローカル動作

・証明書を発行する際に、サードパーティのサーバーに
 あなたのデータを送信することはありません。
 (TSA局には、不可逆なハッシュ値のみを送信します。)

・認証については、Googleの公式OAuth 2.0を利用し、
 必要最小限の権限のみを要求するため安全です。

◆プロジェクトごとのバージョン管理と自動バックアップ [ New ]

・「メジャー.マイナー.パッチ(例:1.7.1)」の3パーツでの
 バージョン番号管理に対応しました。

・前回入力したバージョン番号は、プロジェクトごとに自動記録されます。

・指定したローカルフォルダをZIP圧縮し、
 Google Driveへのアップロード、
 タイムスタンプ証明書(.tsr)と目録(.txt)の取得までを
 ワンクリックで全自動実行します。

・これら一式のファイルは
 「プロジェクト名_バージョン番号」の 専用フォルダを作成して
 ひとまとめに出力されるため、 リリースごとのデータ管理が
 飛躍的に簡単になりました。

◆アップロード履歴のタブ表示 [ New ]

・Google Drive上の該当フォルダ内にアップロードされている
 ファイル名と日時の一覧を、
 ツール上の 「Driveアップロード履歴」タブから
 直接取得・確認できます。

【NEW】シームレスな検証画面の連携 [ New ]

・タイムスタンプ履歴のリストから検証したい項目を選ぶと、
 検証画面を開く際に、
 目録ファイル、証明書ファイル、 バックアップファイルのパスが
 自動で入力された状態になります。


⚙️ セットアップ手順(初回のみ)


・本ツールを使用するには、
 Google Cloud Consoleから
 ご自身専用の「認証情報(クライアントシークレット)」を
 取得する必要があります。

(1)Google Cloud Consoleにアクセス 

 ・Googleアカウントでログインし、
  新しいプロジェクトを作成します。

(2)Google Drive APIの有効化

 ・「APIとサービス」>「ライブラリ」から
  Google Drive API を検索し、
  「有効にする」をクリックします。

(3)OAuth 同意画面の設定

 ・「APIとサービス」>「OAuth 同意画面」へ進み、
  User Typeを「外部」にして作成します。

 ・テストユーザーとして、
  ご自身のGoogleアカウントの
  メールアドレスを追加してください。

(4)クライアントIDの作成

 ・「認証情報」タブから
  「+認証情報を作成」>「OAuth クライアント ID」を選択します。

 ・アプリケーションの種類を
  「デスクトップ アプリ」 にして作成します。

(5)JSONファイルのダウンロード

 ・作成完了画面で 「JSON をダウンロード」をクリックします。

 ・ダウンロードしたファイルの名前を client_secrets.json に変更し、
  パソコン内の分かりやすい場所 (ドキュメントフォルダなど)に
  保存してください。

※このファイルやその内容は、 APIキーみたいなものですので、
 絶対に外部に公表してはいけません。


📖 取扱説明書(基本的な使い方)


ステップ1:設定と接続


(1)「設定」タブ
を開きます。

(2)アプリケーション名:  

 ・Google Cloud Consoleで作成した アプリケーション名を入力します。

(3)client_secrets.json:  
 
 ・セットアップ手順でダウンロードした JSONファイルを選択します。

(4)出力先:  

 ・証明書(.txt と .tsr)やバックアップを
  保存する基準フォルダを選択します。

ステップ2:プロジェクト管理によるリリースと証明書発行


(1)「設定」タブの右下にある
  「プロジェクト管理を開く」 ボタンをクリックします。

(2)左側のリストから対象のプロジェクトを選ぶか、
  「追加」ボタンで新規作成します。

(3)ローカル側の対象フォルダ(binフォルダ等)、
   アップロード先のDriveフォルダIDを設定します。

(4)画面下部のリリース設定にて、
  「バージョン(メジャー・マイナー・パッチ)」 を指定します。

(5)「アップロードする」 ボタンを押すと、
   処理が全自動でスタートします。

  ・対象となるReleaseフォルダのZIP圧縮。
  ・Google Driveへのアップロード。
  ・タイムスタンプの取得。
 
 ・これらがすべて
 「プロジェクト名_バージョン番号」 の専用フォルダに出力されます。

※初回のみブラウザが開き、
 Googleアカウントへのアクセス許可が求められます。

ステップ3:単一ファイル・フォルダの手動操作(ツリー探索)


・もちろん従来通り、
 マイドライブ全体をツリー形式で探索し、
 特定のフォルダやファイルだけを選んで
 個別に証明書を発行することも可能です。

 (「Google Drive」タブから操作できます。)

ステップ4:証明書の検証


(1)「タイムスタンプ履歴」タブ
を開くと、
  これまでに取得した証明書の履歴が一覧表示されます。

(2)検証したい履歴を選択して、右下の 「検証する」 ボタンを押します。

(3)専用の検証画面が開き、
  目録・証明書・バックアップファイルの パスが
  自動的にセットされます。

  ・そのまま検証を実行することで
  「改ざんされていないこと」を確認できます。

(4)リストの「コメント」列のセルをダブルクリックすると、
  コメントを入力できます。   


❓ よくある質問 (FAQ)


Q. 「At least one client secrets (Installed or Web) should be set」
  というエラーが出ます。

A. 指定しているJSONファイルが間違っています。

 「サービスアカウントキー」ではなく、
 「OAuth 2.0 クライアント ID(デスクトップアプリ用)」の
 JSONファイルを発行して指定してください。

Q. 出力された .tsr ファイルを開くと文字化けしています。

A. .tsrファイルは暗号化されたバイナリデータ(証明書)ですので、
 メモ帳などでは読めません。

 正当性を確認したい場合は、
 ツールの「検証する」ボタンを使用するか、
 FreeTSAの公式サイトやOpenSSLなどの検証ツールに、
 ペアとなる .txt ファイルと一緒に読み込ませることで
 「改ざんされていないこと」を検証できます。

Q. テキストファイル(_output.txt)の中身を 書き換えてもいいですか?

A. 絶対に書き換えないでください。 

 1文字でも(スペースや改行であっても)変更すると
 ハッシュ値が変わってしまい、
 .tsr ファイルを使ったタイムスタンプの検証が
 エラー(改ざん判定)になって証拠能力を失います。

Q. タイムスタンプの取得で「通信エラー」になります。

A. 無料のタイムスタンプ局(FreeTSA)のサーバーが混雑しているか、  ネットワークが不安定な可能性があります。  

 時間をおいてから再度お試しください。

Q. アプリを再起動すると毎回ブラウザでの認証が必要ですか?

A. いいえ。  

 一度認証に成功すると、
 client_secrets.json と同じフォルダに
 token.json というファイルが生成され、
 次回からは自動的にログインされます。


《「OAuth 2.0 クライアント ID」のJSONファイルの取得方法》

・このツールで指定するのは、
 「サービスアカウント」ではなく、
 Googleアカウントへのアクセス権を要求する
 「OAuth 2.0 クライアント」です。

・正しいJSONファイル(client_secrets.json)を取得するには、
 以下の手順で、画面を移動してください。

■正しいJSONファイルの取得手順

(1)Google Cloud Consoleの左側メニューから、
 「APIとサービス」 > 「認証情報」 をクリックします。  

 (※現在の「IAMと管理」>「サービスアカウント」ではありません)

(2)画面上部の 「+ 認証情報を作成」 をクリックし、
  「OAuth クライアント ID」 を選択します。

  ※もし「OAuth 同意画面を設定してください」と表示された場合は、   指示に従って「外部(External)」で
  同意画面の作成だけ済ませてください。

(3)アプリケーションの種類で 「デスクトップ アプリ」 を選択し、   適当な名前をつけて作成します。

(4)作成が完了するとダイアログが表示されるので、
 「JSON をダウンロード」 をクリックします。

(5)ダウンロードしたこの新しいJSONファイルを
  client_secrets.json にリネームして、
  ツールのパスに指定してみてください。


《FreeTSA(無料タイムスタンプ局)のアカウントについて》

・アカウント登録は一切不要です。

・FreeTSA(freetsa.org)は、
 RFC 3161という国際規格に基づいた
 公開のタイムスタンプサービスを
 ボランティアベースで提供している機関です。

・APIキーやユーザー登録などは必要なく、
 指定のエンドポイントに対して
 正しい形式のハッシュデータを送信すれば、
 誰でも無料でタイムスタンプ(.tsrファイル)を発行してくれます。


《登録されたタイムスタンプの確認方法》

・FreeTSAから取得した .tsr ファイルは、
 「確かにその日時にそのデータが存在した」
 という暗号学的な証明書そのものです。

・この .tsr ファイル自体を
 人間がメモ帳などで開いても読めませんが、
 以下の方法で正当性を確認・検証できます。

本ツールの検証機能を使う:

・ツールの「タイムスタンプ履歴」タブから検証機能を呼び出すことで、  ボタン一つでローカル環境での検証テストが実行可能です。

オンラインの検証ツールを使う:

・FreeTSAの公式サイト内にある「Verify timestamp」や、
 他のRFC 3161対応の検証サイトに、

 ①出力されたテキストファイル と
 ②取得した .tsr ファイル をセットでアップロードすると
  検証結果が表示されます。

コマンドラインツール(OpenSSL)を使う:

・開発者向けですが、
 OpenSSLを使えば
 ローカル環境で検証コマンドを叩くことができます。↓

openssl ts -verify -in ファイル名.tsr -data ファイル名.txt -CAfile freetsaの証明書.crt

《類似サービスとの比較》


◆商用の電子署名・タイムスタンプサービス

・法的な電子帳簿保存法に対応していますが、
 従量課金制(1スタンプ数十円〜)であり、
 個人開発者が日常的なバージョン管理に使うには
 コストが高すぎます。

◆Web魚拓(Wayback Machine等)

・無料で視覚的な証明になりますが、
 対象が「公開されたWebページ」に限られます。

・クラウド上の内部データや、ファイルの実体を
 証明することはできません。

◆ブロックチェーン刻印サービス(OpenTimestamps等)

・無料で強力ですが、CUIツールが多く、
 本ツールのように
 「クラウドから直接メタデータを引いてGUIで管理する」
 一貫したワークフローを持つものはほぼありません。

《技術的なメリット》


ゼロ・トラスト(ローカル完結型)のプライバシー保護:

・類似のWebサービスは
 「証明したいファイルを
  業者のサーバーにアップロードする」
 必要があります。

・本ツールは「不可逆なハッシュ値だけをTSA局に送る」ため、
 機密情報(未公開のソースコード等)が外部に一切漏れません。

超高速な実体証明アプローチ:

・巨大なファイル(数GBの動画やZIP等)を
 ローカルにダウンロードしてハッシュを計算するのではなく、  「Googleのサーバーが計算済みのMD5値」を目録に記載し、
 それにタイムスタンプを打つことによって、
 ネットワーク帯域と時間を劇的に節約してくれます。

いいなと思ったら応援しよう!

ピックアップされています

便利なツール

  • 95本

コメント

1

古井和雄さん
このたびはフォローありがとうございます。
新しいつながりがまた1つ増えてとても嬉しいです。
これから順次記事のほうも読ませてもらいます☺️

コメントするには、 ログイン または 会員登録 をお願いします。
GoogleDriveの情報を出力する「GoogleDriveManager」|古井和雄
word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word

mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1