0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Google Drive with ChatGPT

Posted at

大規模言語モデル講座 基礎編 2025 Autumn 敗因を勝因に
https://qiita.com/kaizen_nagoya/items/34ffd2b0c47a5f3665d9

Google Driveは意識して使うことが多くなかった。
Googleのツールを使う際に利用していた感じ。

ChatGPT

google driveと類似のサービスを5つ以上あげて比較してください。

ChatGPT:

Google Drive に似た(あるいは代替可能な)クラウドストレージ/ファイル共有サービスは多数あります。以下に代表的なものを5〜7個挙げ、それらを「主な特徴」「長所/短所」「向いている用途」の観点で比較します。
(※価格・仕様は執筆時点の情報であり、各サービスの公式サイトで最新情報を確認してください)
比較対象サービス一覧
以下のサービスを比較します:
Microsoft OneDrive
Dropbox
MEGA
pCloud
Sync.com
Nextcloud(セルフホスト型)
Proton Drive
各サービスの概要と特徴比較
サービス 主な特徴 長所 短所 向いている用途/ユーザータイプ
Microsoft OneDrive Microsoft 365(旧 Office 365)との統合強化。Windows 標準機能との親和性が高い Windows上でOS統合されて使いやすい/オンライン版 Office と連携/「Personal Vault(セキュアな保管領域)」機能あり 無料容量が小さい/高度なプライバシー(ゼロ知識暗号など)は提供されていない Office 文書を多用する人/Windowsユーザーに最適
Dropbox 軽快な同期、ファイル共有、外部アプリとの連携が豊富 差分同期(編集差分のみアップロード)で効率的/共有リンク・アクセス制御が柔軟 無料プラン容量が小さい/高度な暗号化機能は有償または限定 ファイル同期パフォーマンスを重視する人
MEGA プライバシー重視、ゼロ知識暗号化(クライアントサイド暗号化) 保存データは暗号化されプロバイダ自身も閲覧できない/無料容量が比較的大きい ドキュメント編集・共同編集機能は弱め/有料プランがやや割高 プライバシーを重視したい/大容量ファイルの保管用途
pCloud メディア再生/ストリーミング対応に強み/ライフタイムプランあり 音楽・動画ファイルのクラウド再生機能/一度支払う「ライフタイム」プランあり ドキュメント共同編集機能が弱い/クライアントサイド暗号化は有料オプション 音楽・動画ファイルのクラウド管理が多い人/長期的なコストを抑えたい人
Sync.com セキュリティ重視(ゼロ知識暗号化)+コラボレーション機能 データのプライバシー保護が強い/Office との統合/共有リンクの制御が充実 無料プラン容量が少なめ/アップロード速度が暗号化のため遅くなることも セキュリティ最優先/企業機密や個人情報の保管など
Nextcloud 自前サーバー/レンタルサーバー上に構築できるセルフホスト型ソリューション 完全なデータ所有権/カスタマイズ性/拡張性が高い 自分でサーバー管理が必要/運用負荷・セキュリティ対策が必要 自分でクラウドを運用したい中・上級者/法人や団体向け
Proton Drive プライバシー重視、広告非依存、スイス拠点 データ収集を最小化/暗号化重視の設計 機能はまだ発展途上/大容量ユーザーにはコストが高くなる可能性 プライバシーを重視するユーザー/Google の代替を求める人
深掘り・比較のポイント
以下の観点から比較すると、どのサービスが目的に合うか判断しやすくなります。

  1. セキュリティ・プライバシー
    Google Drive は、ストレージ上のデータを Google がアクセスできる(つまり、暗号化鍵を持っている)形態を取っているため、プライバシー重視派には懸念要素となることがあります。
    MEGA や Sync.com、Proton Drive などは「ゼロ知識暗号化(クライアント側で暗号化し、プロバイダが復号できない方式)」を採用するものがあり、サービス提供側でも内容を閲覧できない設計になっています。
    Nextcloud のセルフホスト型を選べば、物理的にどのサーバーを使うか、暗号化方式をどう設定するかも自由に選択できますが、その分管理責任も伴います。
  2. コラボレーション/文書編集機能
    Google Drive の強みの一つが、Google Docs/Sheets/Slides とシームレスに連携し、複数人でリアルタイム編集できる点です。
    OneDrive は Microsoft Office との深い統合が強み。
    Dropbox や pCloud は文書編集機能は弱く、外部アプリとの連携で補う形が多い。
    Nextcloud も LibreOffice 等を組み合わせることでウェブ上編集機能を提供できますが、運用・設定がやや複雑化します。
  3. 同期/速度性能
    差分同期(ファイルの変更部分だけアップロードする技術)をサポートするサービスは、特に大きなファイルの少量修正時に効率的で、Dropbox はこの方式を採用している点が優れています。
    暗号化処理を強化するとアップロード速度に影響が出ることがあり、セキュリティ特化型サービス(Sync.com や Proton Drive など)はその点で若干遅くなることが報告されることがあります。
    ローカルとクラウドの同期方式(すべて同期 vs 選択同期/ファイルをクラウドのみ保管)もサービスによって異なります。
  4. 料金体系と無料枠
    無料枠はサービスによって大きく異なります(例:MEGA は比較的多め、Dropbox は少なめ)。
    有料プランでは月額課金型のほか、pCloud のように「ライフタイム(買い切り)」型プランを提供しているものもあります。
    大容量を扱う場合、費用効率やアップグレードオプションをよく確認する必要があります。
  5. 拡張性・カスタマイズ性
    Nextcloud はプラグイン/アプリを追加できるので、チャット、カレンダー、タスク管理、ファイルプレビュー機能など多様な拡張が可能。
    他サービスは基本的にプロバイダ側で機能が固定されており、ユーザー側で拡張できる余地は小さい。
    まとめ・おすすめの使い分け
    Google Drive に近い操作性/利便性を重視するなら → OneDrive や Dropbox
    プライバシー重視で使いたいなら → MEGA、Sync.com、Proton Drive
    音楽・動画再生などメディア用途重視なら → pCloud
    自分でクラウドを構築・運営したいなら → Nextcloud
    もし、ご希望であれば「日本国内で使いやすいサービス」「コスト重視型」「企業利用向け」などの観点でも比較できますが、どの観点で比較したいでしょうか?その条件に合ったおすすめも出せます。

Appleのクラウドサービスとの比較もお願い。

ChatGPT:

良い質問です。Apple のクラウドサービス(主に iCloud / iCloud+)と、前に挙げた Google Drive 等他サービスとの比較をすることで、それぞれの強み・弱みがより明確になります。以下に、iCloud の特徴をまず整理し、それをもとに比較していきます。
iCloud / iCloud+ の概要・特徴
まず、iCloud の主な仕様・特徴を押さえておきます。
基本機能とストレージプラン
iCloud は Apple が提供するクラウドストレージ・同期サービスで、メール、連絡先、写真、ファイル、設定、バックアップなどを多くの Apple サービスと連携させて同期できます。
Comparitech+3
ウィキペディア+3
Apple+3
無料プランでは 5 GB のストレージが提供されます。
Apple+2
ウィキペディア+2
有料プラン(iCloud+)には、50 GB、200 GB、2 TB のプランが基本ラインナップとしてあり、さらに大容量の 6 TB、12 TB も提供される国・地域があります。
MacDailyNews+4
Appleサポート+4
Apple+4
近年、iCloud+ のストレージ料金は複数国で引き上げられており、日本でも 50 GB/200 GB/2 TB プラン等で価格改定がなされています。
Appleサポート+3
MacRumors+3
MacRumors+3
iCloud Drive を通じて任意のファイル(ドキュメント、写真、動画、各種ファイル)を保存・同期できます。
clinked.com+3
ウィキペディア+3
Comparitech+3
ファイルの最大サイズ制限(アップロードできる単一ファイルの上限)があり、Apple の文書によれば 50 GB が上限だった例があります。
ウィキペディア
iCloud は Apple 製品(iPhone, iPad, Mac)との統合性が非常に高く、これらデバイス間での同期・バックアップ・シームレスな操作が設計の中心になっています。
ウィキペディア+5
clinked.com+5
Comparitech+5
Windows 用の iCloud クライアントがあり、Windows PC でも iCloud Drive にアクセス可能ですが、Android 端末向けのネイティブアプリは存在せず、Android からは Web 経由でアクセスする形になります。
Apple+3
clinked.com+3
Comparitech+3
セキュリティ面では、通常の通信時/保存時の暗号化に加えて、「Advanced Data Protection(拡張データ保護)」という、より強力なエンドツーエンド暗号化オプションが提供されており、この設定を有効にすると iCloud 上のファイル/写真/バックアップ等のデータは Apple 自身も復号できない設計とされます。
WIRED+4
WIRED+4
Comparitech+4
ただし、Advanced Data Protection を全地域で完全にサポートしているわけではなく、地域法令・仕様制限により制限される場合があります。例えば、イギリスでは新規ユーザーに対してこの機能の提供を停止する動きが報じられています。
The Verge
iCloud は同期型の設計が強く、あるデバイスからファイルを削除すると全体から削除される挙動を持つことがあります(=同期と「バックアップ・アーカイブ」の機能の区別が曖昧になることも)という指摘があります。
Apple Support Community+3
Apple Support Community+3
Hacker News+3
iCloud と他のクラウドサービス(特に Google Drive 等)との比較
以下の観点で比較してみます。
比較項目 iCloud の強み・利点 iCloud の弱み・制限 他サービス(例:Google Drive, OneDrive, Dropbox, MEGA, pCloud 等)との相対的位置づけ
プラットフォーム統合 Apple 製品との統合・利便性が非常に高い(iOS/macOS の標準機能として扱われる) Apple 以外の環境(特に Android)との親和性は弱い Google Drive や Dropbox はクロスプラットフォーム対応が強く、Windows/Android など多様な環境で使いやすい
無料ストレージ容量 5 GB(無料) 比較的少ない無料容量 Google Drive は 15 GB を無料利用枠に含む(Gmail, Photos 等との合算)
Comparitech+3
Apple Support Community+3
Comparitech+3
有料プランの価格/容量 国内では 50 GB/200 GB/2 TB などを提供。近年価格改定があった。
MacDailyNews+4
MacRumors+4
MacRumors+4
大容量(たとえば 10 TB 以上など)を使いたいユーザーには選択肢が限定的 他サービスは 5 TB、10 TB、さらには 30 TB を提供しているものもある(特に Google One や Dropbox Business 等)
ファイル同期・削除挙動 同期型で、ファイルをデバイスから削除するとクラウドからも消えるという挙動があるため、「アーカイブ保存」用途には注意が必要という指摘あり
Apple Support Community+2
Hacker News+2
同期とバックアップの境界が曖昧になる可能性がある Google Drive 等は「アーカイブ保存(クラウドに残すが、ローカルは削除できる)」用途にやや柔軟性あり
共有・コラボレーション機能 Apple の「ファイル共有」機能、iWork(Pages/Numbers/Keynote)との連携などが可能 共同編集機能や文書管理機能は Google Docs/Sheets 等には及ばない Google Drive は共同編集、リアルタイムコラボレーション機能が強く、複数人で文書を同時編集する用途に向く
セキュリティ・暗号化・プライバシー 通信時/保管時暗号化は標準提供。Advanced Data Protection によるエンドツーエンド暗号化を選択できる点が強み
WIRED+5
WIRED+5
Comparitech+5
地域制約があり、全地域で Advanced Data Protection が使えるわけではない。また、設定を誤るとデータ復号できなくなるリスクもある 他のクラウドサービス(Sync.com、MEGA、Proton Drive など)は「ゼロ知識暗号化(提供者も鍵を持たない方式)」を売りにしているものもある
柔軟性・拡張性 Apple のエコシステム内ではスムーズさが強み 他サービスとの連携・API 利用などの自由度は若干制約されることがある Dropbox、Google Drive などは多数のサードパーティアプリとの統合が豊富
クロスプラットフォーム対応 Windows 用クライアントあり、Web でもアクセス可。ただし Android ネイティブアプリは提供されていない。
clinked.com+2
ウィキペディア+2
Android で純正アプリがない点はやや不便 Google Drive、Dropbox、OneDrive などはすべて主要 OS(iOS/Android/Windows/macOS)でネイティブ対応している
コストパフォーマンス・容量効率 少量ストレージ用途ではコスト感が抑えられる可能性 多くのデータを保存する用途では、他サービスの大容量プランが相対的に割安になることがある 例えば、Dropbox Business や Google One の上位プラン、あるいはクラウドストレージ特化サービス(pCloud、Backblaze など)では大容量を比較的効率的に提供している場合あり
運用責任・管理 Apple 側が管理を引き受けてくれるため、ユーザー側運用負荷は低い 利用者が自由にサーバーの場所を選べない、あるいは自前管理には向かない Nextcloud 等セルフホスト型サービスなら運用自由度は高いが、管理責任も伴う
総合的な見方と用途別おすすめ
Apple エコシステムを主に使っている人
 iPhone/iPad/Mac を中心に使っている場合、iCloud のシームレスな統合性は非常に魅力的です。ファイル・写真・バックアップ・設定同期などが自動で連動する利便性は他サービスではなかなか得られないものです。
クロスプラットフォームで使いたい人
 Windows や Android を使う頻度が高い場合、Google Drive や Dropbox、OneDrive などの方がアプリ対応や使い勝手で有利なことが多いです。
セキュリティ・プライバシー重視の人
 iCloud の Advanced Data Protection を活用すれば強い暗号化を得られる可能性があります。一方、他サービスでは「ゼロ知識暗号化」を採るものもあり、サービス提供者側が鍵を持たないためセキュリティ面で優位性を持つものもあります。
大容量/コスト重視の人
 データ量が多い場合、iCloud の上限・価格体系が足を引っ張る可能性があります。他サービスの大容量プランやバックアップ特化クラウドストレージの方がコスト効率が良くなるケースがあります。
共同作業・リアルタイム編集が多い人
 Google Docs/Sheets の共同編集機能は非常に強力で、リアルタイムで複数人が同時に作業する用途では Google Drive が優勢です。iCloud でも iWork(Pages, Numbers, Keynote)を共有できますが、汎用性・互換性で Google 系との併用が目立ちます。
もしよければ、日本国内で使いやすい iCloud 対応代替サービス(日本語対応、国内サーバー運用、価格比較など)も含めて具体案をご紹介できますが、やりましょうか?

Google drive, Apple iCloud, Microsoft OneDriveで、サービスの自動化を実現するための言語とコード例をしめしてください。

ChatGPT:

もちろんです。ここでは Google Drive、Apple iCloud、Microsoft OneDrive の3つの主要クラウドストレージについて、「自動化」を実現するために使われる言語と具体的なコード例を整理します。ポイントは API利用 と 自動化スクリプト です。

  1. Google Drive
    自動化で使われる言語
    Python(Google API Client Library for Python が公式サポート)
    JavaScript(Google Apps Script)
    その他:Java, Node.js, Go など公式ライブラリあり
    Pythonでの例:フォルダ内のファイル一覧取得
from googleapiclient.discovery import build
from google.oauth2 import service_account

# サービスアカウント JSON のパス
SERVICE_ACCOUNT_FILE = 'service_account.json'
SCOPES = ['https://www.googleapis.com/auth/drive']

credentials = service_account.Credentials.from_service_account_file(
    SERVICE_ACCOUNT_FILE, scopes=SCOPES)
service = build('drive', 'v3', credentials=credentials)

# 特定フォルダ内のファイルを取得
folder_id = 'YOUR_FOLDER_ID'
results = service.files().list(
    q=f"'{folder_id}' in parents",
    pageSize=10,
    fields="files(id, name)").execute()

items = results.get('files', [])
for item in items:
    print(item['name'], item['id'])
Google Apps Scriptでの例Google Drive内の新規ファイルをメール通知
function notifyNewFiles() {
  var folder = DriveApp.getFolderById("YOUR_FOLDER_ID");
  var files = folder.getFiles();
  while (files.hasNext()) {
    var file = files.next();
    MailApp.sendEmail("you@example.com", "新しいファイル", file.getName());
  }
}

Apps Script は トリガー(時間ベース/イベントベース) を設定可能で、自動化に便利
2. Apple iCloud
自動化で使われる言語
Apple は Google のような公開 REST API が少なく、公式 SDK は提供されていない
実務での自動化には:
Python + pyicloud ライブラリ
AppleScript(Mac 上での操作自動化)
Shortcuts(ショートカットアプリ)(iOS/macOS)
Pythonでの例:iCloud ファイル情報取得(非公式ライブラリ)

from pyicloud import PyiCloudService

# iCloud アカウントログイン
api = PyiCloudService('your_apple_id', 'your_password')

# Two-factor認証が必要な場合
if api.requires_2fa:
    code = input("Enter the 2FA code: ")
    api.validate_2fa_code(code)

# iCloud Drive のルートフォルダにあるファイル一覧
for item in api.drive.dir():
    print(item)
注意非公式ライブラリのため Apple の仕様変更で動かなくなることがあります
AppleScriptの例Finder 経由で iCloud Drive に新規フォルダ作成
tell application "Finder"
    set iCloudFolder to folder "iCloud Drive" of home
    make new folder at iCloudFolder with properties {name:"NewFolder"}
end tell
macOS 環境限定でGUI操作の自動化に向く
3. Microsoft OneDrive
自動化で使われる言語
PythonMicrosoft Graph API 公式サポート
PowerShellWindows 環境での自動化
JavaScript / Node.jsREST API
Pythonでの例Microsoft Graph API を使った OneDrive ファイル一覧
import requests

# アクセストークンを取得済みと仮定
ACCESS_TOKEN = 'YOUR_ACCESS_TOKEN'
headers = {'Authorization': 'Bearer ' + ACCESS_TOKEN}

# ルートフォルダ内のアイテム取得
url = 'https://graph.microsoft.com/v1.0/me/drive/root/children'
response = requests.get(url, headers=headers)
data = response.json()

for item in data['value']:
    print(item['name'], item['id'])
PowerShellでの例OneDrive内ファイル一覧
# Microsoft Graph PowerShell SDK インストール
Install-Module Microsoft.Graph -Scope CurrentUser

Connect-MgGraph -Scopes "Files.Read.All"

# ルートディレクトリのアイテム一覧
Get-MgUserDriveRootChild -UserId "your_user@domain.com"

PowerShell は Windows 環境での定期実行やファイル処理の自動化に強み
まとめ
サービス 主な自動化言語 特徴 メリット・向き
Google Drive Python, JavaScript (Apps Script), Node.js REST API が公式で充実、トリガーやイベント連動可能 ファイル管理+G Suite 連携の自動化に最適
Apple iCloud Python (非公式), AppleScript, Shortcuts API が限定的、非公式ライブラリ依存、AppleScriptでGUI操作可能 macOS/iOS 環境での個人向け自動化に向く
Microsoft OneDrive Python, PowerShell, Node.js Microsoft Graph API 経由で操作、Office連携 Windows環境+Office365連携、自動バックアップに最適
💡 補足:
自動化のしやすさは Google Drive が最も強力、次に OneDrive。
iCloud は公式 API が限定的なため、GUI操作や非公式ライブラリを使った自動化が中心となる。
Windows 環境での自動化なら PowerShell + OneDrive が簡単。
Mac/iOS 環境なら Shortcuts や AppleScript が現実的。
希望であれば、この3サービスで 同じタスク(例:指定フォルダのファイルを自動バックアップ) を自動化するフルサンプルコードを Python中心に統一して比較 した例も作れます。
作りますか?

はい。

ChatGPT:

了解です。では Google Drive、Apple iCloud、Microsoft OneDrive の3サービスで、同じタスク「指定フォルダのファイルをローカルに自動バックアップ」を Python を使って統一的に比較できるサンプルコード例を作ります。
前提条件
Python 3.8 以上
各サービスで API アクセスまたはライブラリ設定済み
Google Drive → サービスアカウント JSON
iCloud → pyicloud ライブラリと 2FA対応
OneDrive → Microsoft Graph API のアクセストークン
バックアップ先は ./backup フォルダ

  1. Google Drive
from googleapiclient.discovery import build
from google.oauth2 import service_account
import os
import io
from googleapiclient.http import MediaIoBaseDownload

SERVICE_ACCOUNT_FILE = 'service_account.json'
SCOPES = ['https://www.googleapis.com/auth/drive.readonly']

credentials = service_account.Credentials.from_service_account_file(
    SERVICE_ACCOUNT_FILE, scopes=SCOPES)
service = build('drive', 'v3', credentials=credentials)

FOLDER_ID = 'YOUR_FOLDER_ID'
BACKUP_DIR = './backup/google_drive'
os.makedirs(BACKUP_DIR, exist_ok=True)

results = service.files().list(
    q=f"'{FOLDER_ID}' in parents",
    fields="files(id, name)"
).execute()
files = results.get('files', [])

for file in files:
    file_id = file['id']
    file_name = file['name']
    request = service.files().get_media(fileId=file_id)
    fh = io.FileIO(os.path.join(BACKUP_DIR, file_name), 'wb')
    downloader = MediaIoBaseDownload(fh, request)
    done = False
    while not done:
        status, done = downloader.next_chunk()
    print(f"Downloaded {file_name}")
  1. Apple iCloud
from pyicloud import PyiCloudService
import os

ICLOUD_USERNAME = 'your_apple_id'
ICLOUD_PASSWORD = 'your_password'

api = PyiCloudService(ICLOUD_USERNAME, ICLOUD_PASSWORD)

if api.requires_2fa:
    code = input("Enter the 2FA code: ")
    api.validate_2fa_code(code)

BACKUP_DIR = './backup/icloud'
os.makedirs(BACKUP_DIR, exist_ok=True)

# ルートフォルダ内のファイルを取得
for item in api.drive.dir():
    if not item.is_dir:
        file_name = item.name
        file_path = os.path.join(BACKUP_DIR, file_name)
        with open(file_path, 'wb') as f:
            f.write(item.open().read())
        print(f"Downloaded {file_name}")

⚠ 注意: pyicloud は非公式ライブラリであり、iCloud API 仕様変更で動かなくなる可能性があります。
3. Microsoft OneDrive

import requests
import os

ACCESS_TOKEN = 'YOUR_ACCESS_TOKEN'
BACKUP_DIR = './backup/onedrive'
os.makedirs(BACKUP_DIR, exist_ok=True)

url = 'https://graph.microsoft.com/v1.0/me/drive/root/children'
headers = {'Authorization': f'Bearer {ACCESS_TOKEN}'}

response = requests.get(url, headers=headers)
data = response.json()

for item in data['value']:
    if 'file' in item:
        file_name = item['name']
        download_url = item['@microsoft.graph.downloadUrl']
        r = requests.get(download_url)
        with open(os.path.join(BACKUP_DIR, file_name), 'wb') as f:
            f.write(r.content)
        print(f"Downloaded {file_name}")

🔹 比較まとめ
サービス ライブラリ/API 自動化の容易さ 注意点
Google Drive google-api-python-client ★★★★★ サービスアカウントでフル制御可能
Apple iCloud pyicloud ★★☆☆☆ 非公式ライブラリ依存、API変更で不安定
Microsoft OneDrive Microsoft Graph API ★★★★☆ アクセストークン管理必要、REST APIで安定
💡 ポイント
Google Drive と OneDrive は公式 API で安定性・ドキュメント豊富
iCloud は個人用途向け、非公式ライブラリや AppleScript/Shortcuts が現実的
クロスプラットフォームでスケジュール実行するなら、Python + cron / Task Scheduler が推奨
希望であれば、このコードを スケジュール化して毎日自動実行 する設定例(cron 例や Windows Task Scheduler 例)も作れます。作りますか?

はい。

ChatGPT:

では、先ほどの Python バックアップコードを 自動実行(スケジュール化) する例をまとめます。OSごとに方法が異なるので、Linux/macOS(cron) と Windows(Task Scheduler) での例を示します。

  1. Linux/macOS で cron を使う場合
    ステップ 1:Python スクリプトを用意
    例:backup_drive.py
    先ほど示した Google Drive / iCloud / OneDrive のいずれか、あるいは統合スクリプトを保存
    ステップ 2:実行確認
    python3 ~/scripts/backup_drive.py
    ステップ 3:cron で自動化
    ターミナルで crontab 編集
    crontab -e
    毎日午前 2 時に実行する例
    0 2 * * * /usr/bin/python3 /Users/username/scripts/backup_drive.py >> /Users/username/logs/backup.log 2>&1
    /usr/bin/python3 は which python3 で確認
    ログは backup.log に追記される
  2. Windows で Task Scheduler を使う場合
    ステップ 1:Python スクリプトを用意
    例:C:\scripts\backup_drive.py
    ステップ 2:タスクスケジューラで新規タスク作成
    「タスクスケジューラ」を開く → 「基本タスクの作成」
    名前・説明を入力
    トリガーを設定(例:毎日 2:00)
    操作:「プログラムの開始」 →
    プログラム/スクリプト:C:\Python39\python.exe
    引数にスクリプト:C:\scripts\backup_drive.py
    「完了」をクリック
    ステップ 3:ログ出力(オプション)
    コマンドライン引数でリダイレクト可能:
    C:\Python39\python.exe C:\scripts\backup_drive.py >> C:\scripts\backup.log 2>&1
  3. 追加のポイント
    OS メリット 注意点
    Linux/macOS cron は軽量・安定、複数ユーザーで管理可能 環境変数(PATH や Python 仮想環境)に注意
    Windows GUI で設定可能、ユーザー権限で簡単 パス設定や Python バージョンに注意、2FA の自動化は別途工夫必要
    💡 おすすめ
    Google Drive / OneDrive は公式 API + Python で安定
    iCloud は 2FA や非公式ライブラリの制約に注意
    ログを必ず出力し、失敗時にメール通知などを組み合わせると安心
    必要であれば、このスクリプトを 「Google Drive + OneDrive + iCloud をまとめて毎日自動バックアップする統合スクリプト」 の形で作ることもできます。作りますか?

はい。

ChatGPT:

では、Google Drive + OneDrive + iCloud をまとめて毎日自動バックアップする統合 Python スクリプト例 を作ります。ポイントは以下です:
各サービスごとにフォルダを指定してバックアップ
ローカルの ./backup/ 配下にサービス別フォルダを作成
エラーをキャッチしてログに記録
後で cron(Linux/macOS)や Task Scheduler(Windows)でスケジュール化可能

import os
import io
import requests
from datetime import datetime

# ---------- Google Drive ----------
from googleapiclient.discovery import build
from google.oauth2 import service_account
from googleapiclient.http import MediaIoBaseDownload

def backup_google_drive():
    try:
        SERVICE_ACCOUNT_FILE = 'service_account.json'
        SCOPES = ['https://www.googleapis.com/auth/drive.readonly']
        credentials = service_account.Credentials.from_service_account_file(
            SERVICE_ACCOUNT_FILE, scopes=SCOPES)
        service = build('drive', 'v3', credentials=credentials)

        FOLDER_ID = 'YOUR_GOOGLE_DRIVE_FOLDER_ID'
        BACKUP_DIR = './backup/google_drive'
        os.makedirs(BACKUP_DIR, exist_ok=True)

        results = service.files().list(
            q=f"'{FOLDER_ID}' in parents",
            fields="files(id, name)"
        ).execute()

        files = results.get('files', [])
        for file in files:
            file_id = file['id']
            file_name = file['name']
            request = service.files().get_media(fileId=file_id)
            fh = io.FileIO(os.path.join(BACKUP_DIR, file_name), 'wb')
            downloader = MediaIoBaseDownload(fh, request)
            done = False
            while not done:
                status, done = downloader.next_chunk()
            print(f"[Google Drive] Downloaded {file_name}")
    except Exception as e:
        print(f"[Google Drive] Error: {e}")

# ---------- iCloud ----------
from pyicloud import PyiCloudService

def backup_icloud():
    try:
        ICLOUD_USERNAME = 'your_apple_id'
        ICLOUD_PASSWORD = 'your_password'
        api = PyiCloudService(ICLOUD_USERNAME, ICLOUD_PASSWORD)

        if api.requires_2fa:
            code = input("Enter 2FA code for iCloud: ")
            api.validate_2fa_code(code)

        BACKUP_DIR = './backup/icloud'
        os.makedirs(BACKUP_DIR, exist_ok=True)

        for item in api.drive.dir():
            if not item.is_dir:
                file_name = item.name
                file_path = os.path.join(BACKUP_DIR, file_name)
                with open(file_path, 'wb') as f:
                    f.write(item.open().read())
                print(f"[iCloud] Downloaded {file_name}")
    except Exception as e:
        print(f"[iCloud] Error: {e}")

# ---------- OneDrive ----------
def backup_onedrive():
    try:
        ACCESS_TOKEN = 'YOUR_ONEDRIVE_ACCESS_TOKEN'
        BACKUP_DIR = './backup/onedrive'
        os.makedirs(BACKUP_DIR, exist_ok=True)

        url = 'https://graph.microsoft.com/v1.0/me/drive/root/children'
        headers = {'Authorization': f'Bearer {ACCESS_TOKEN}'}

        response = requests.get(url, headers=headers)
        data = response.json()

        for item in data.get('value', []):
            if 'file' in item:
                file_name = item['name']
                download_url = item['@microsoft.graph.downloadUrl']
                r = requests.get(download_url)
                with open(os.path.join(BACKUP_DIR, file_name), 'wb') as f:
                    f.write(r.content)
                print(f"[OneDrive] Downloaded {file_name}")
    except Exception as e:
        print(f"[OneDrive] Error: {e}")

# ---------- Main ----------
if __name__ == "__main__":
    timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    print(f"Backup started at {timestamp}")

    backup_google_drive()
    backup_icloud()
    backup_onedrive()

    timestamp_end = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    print(f"Backup finished at {timestamp_end}")

🔹 補足・注意点
iCloud
pyicloud は非公式ライブラリで仕様変更に弱い
2FA が必須の場合は手入力が必要
自動化を完全無人で回す場合は macOS の AppleScript / Shortcuts 併用も検討
認証情報
Google Drive → service_account.json
OneDrive → Graph API のアクセストークン
iCloud → アカウント情報と 2FA 対応
スケジュール化
Linux/macOS → cron で python3 backup_script.py を定期実行
Windows → Task Scheduler で Python スクリプトを指定して実行
ログ管理
実運用では >> backup.log 2>&1 で出力をログファイルに残すことを推奨
このスクリプトを使えば、Google Drive、iCloud、OneDrive の各フォルダをまとめて定期バックアップできます。
希望であれば、iCloud 2FA を自動化して無人実行できる形の工夫例も作れます。作りますか?
ChatGPT の回答は必ずしも正しいとは限りません。重要な情報は確認するようにしてください。

Google Drive @ Qiita

Google ColaboratoryでGoogle Drive上の.pyファイルをインポート
https://qiita.com/Kunikata/items/45e731753e97bda28aab

JavaScript で Google Drive を読み書き
https://qiita.com/harehare1110/items/4ed2c4e894d2d359751e

google-drive-ocamlfuseでGoogleドライブをマウント
https://qiita.com/cabbage_lettuce/items/c4544b3e5cd28caf04bc

GsuiteのGoogle DriveをDrive File Streamに置き換えてみた
https://qiita.com/nao-guitarist/items/eeaede5ddc6757b0c83a

google-drive-ocamlfuse - Gooole Driveをマウント
https://qiita.com/shokkaa/items/8156b042c4ef55af515b

PythonでGoogle ColaboratoryとGoogle Driveのファイルのやりとりする(1)
https://qiita.com/hrnckmr/items/e2fd307566580d0cae65

[Google Drive API v3] JavaでDrive APIを使う
https://qiita.com/doran/items/15b2c59adb410ddeeb8a

Google Keep と Google Drive の比較
https://qiita.com/maskot1977/items/16fdd66f5239d0986f28

PHP で Google Drive を活用
https://qiita.com/mikakane/items/c41f6f90885077defaf4

Google Drive APIでOCRをしよう!
https://qiita.com/makaishi2/items/b0537413161d57335107

Node.jsでGoogle Drive上のファイルをダウンロードする (Google Drive API v3)
https://qiita.com/n0bisuke/items/61e037deb1926df5427c

Node.jsでGoogle Driveにファイルをアップロードする (Google Drive API v3)
https://qiita.com/n0bisuke/items/776c92bc7d975df3b50a

Google Drive APIの紹介
https://qiita.com/haruki_wakikawa/items/746ad3dbb4d3d076b5e3

google Colaboratory とgoogle Driveを連携する
https://qiita.com/katakaku/items/873060d72d824247f0a1

google driveでの権限(ios)
https://qiita.com/nkmrtkhd/items/6a1c224d80140d3fd2fd

Google Classroom クラスフォルダとGoogle Driveの違い
https://qiita.com/ganechi/items/9507b96647e425cea11a

Google Drive を Linux でマウントする
https://qiita.com/ekzemplaro/items/446cd4cabb55e052df67

Google DriveとOneDriveのファイル読み書き
https://qiita.com/ring2/items/4ff33192bab27fcc1d04

Workato:Google Driveコネクターを利用してGoogle Drive内のファイルを検索する
https://qiita.com/tabimoba/items/f76141e4c3e3c9aa1ee7

MindMup 2 > Google DriveからMindMup Cloudへの移行ツール > Import from Google Drive
https://qiita.com/7of9/items/b0a323d40b75bfe94401

Google DriveとSalesforceの相互連携
https://qiita.com/masahiro_sf/items/ccc0e0f57916fec1d796

Google Drive REST APIを使ってみる
https://qiita.com/lumbermill/items/a7c491090f9613733d04

Google Drive上のファイルをGoogle Colabで読み込み
https://qiita.com/meme08157830/items/996e83d41acc7e0b55b0

Google ColaboratoryでGoogle Driveからcsvファイルなどを読み込む
https://qiita.com/sasami_curry/items/3c6130b46a8af17d0d47

RubyでGoogle Drive/スプレッドシートを扱う
https://qiita.com/koshilife/items/4baf1804c585690fc295

Google Colaboratoryについて
https://qiita.com/Aster_ideatech/items/3ae6ea5e5a011ebcd0b7

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?