Before you start
最初に確認すること
MagicBagはストレージサービスではありません。ファイルはユーザーが指定したCloudflare R2またはS3互換オブジェクトストレージへ、アプリから直接保存されます。保存料、操作料金、税金は接続先の契約に従います。
重要: Access Key IDやSecret Access KeyをこのWebサイトへ入力しないでください。このサイトには資格情報を送信するフォームはありません。キーはMagicBagアプリの設定画面だけに入力します。
この手順に必要なものは次のとおりです。
- CloudflareアカウントとR2を利用できる状態
- MagicBagを実行するmacOS端末
- バケット名、Endpoint、APIキーを安全に保管できる場所
01 / Cloudflare R2
R2バケットを作成する
用途ごとにバケットを分けると、APIキーの権限を限定しやすくなります。MagicBag専用のバケットを作る構成を推奨します。
- Cloudflare Dashboardへログインし、対象アカウントを選択します。
- 左側メニューの R2 Object Storage を開きます。
- Create bucket を押します。
- バケット名を入力します。例:
magicbag-files - リージョンの選択が表示される場合は、利用地域と運用方針に合わせて選択します。
- Create bucket で作成を確定します。
バケット名の注意: バケット名はMagicBagの設定にそのまま入力します。末尾のスラッシュやEndpointのURLをバケット名に含めないでください。
R2 APIキーを発行する
- R2の概要またはAPI Tokens画面から、R2 API Tokens の作成画面を開きます。
- トークン名に用途を入力します。例:
magicbag-mac - 権限は Object Read & Write を選びます。
- 適用対象は、作成した 1つのバケットだけ に限定します。
- 作成後に表示される Access Key ID と Secret Access Key を安全な場所へ一度だけ控えます。
Secret Access Keyは再表示できない場合があります。 画面を閉じる前に保管してください。紛失した場合は新しいキーを発行し、古いキーを削除します。
MagicBagで使うR2の値
| 項目 | 入力例 | 説明 |
|---|---|---|
| Backend | Cloudflare R2 | R2プリセットを選択します。 |
| Endpoint | https://<account-id>.r2.cloudflarestorage.com | <account-id>はCloudflareアカウントIDです。 |
| Bucket | magicbag-files | 作成したバケット名です。 |
| Prefix | magicbag/ | バケット内の保存領域です。既存データと分けるため、空にせず専用prefixを推奨します。 |
| Signing region | auto | R2では通常 auto を使います。 |
| Addressing style | path | まずは path を使います。 |
| Access Key ID | 発行した値 | R2 APIトークンのAccess Key IDです。 |
| Secret Access Key | 発行した値 | R2 APIトークンのSecret Access Keyです。 |
02 / MagicBag app
MagicBagを設定する
- MagicBagを起動し、設定画面を開きます。
- ストレージバックエンドで Cloudflare R2 を選択します。
- 前の表のEndpoint、バケット名、prefix、キーを入力します。
- 同期フォルダを選びます。初回は空の専用フォルダにすると既存ファイルとの衝突を避けられます。
- 保存または接続確認を実行します。
既存のDropboxファイルを残す場合: 初回同期の方式は、アプリの表示に従ってpullまたは空の状態から開始してください。既存データを上書きしないため、移行前にコピー元と保存先のprefixを確認します。
03 / Verify
接続と同期を確認する
- 接続テストが成功し、バケットへアクセスできることを確認します。
- テスト用の小さなファイルを同期フォルダへ追加します。
- FinderのMagicBag仮想領域、またはR2 Dashboardでファイルが見えることを確認します。
- アプリからテストファイルを削除し、削除が意図どおり反映されることを確認します。
MagicBagはprefix配下に次のようなデータを保持します。manifest.jsonは同期の索引なので、動作中に手作業で削除・編集しないでください。
magicbag/
├── manifest.json
└── files/
└── ...
S3-compatible
他のS3互換サービスへ接続する
Amazon S3、Wasabi、Backblaze B2など、S3 APIのEndpointを提供するサービスは、接続先の仕様に合わせて入力できます。
| 項目 | 設定の考え方 |
|---|---|
| Endpoint | サービスが案内するS3 APIのHTTPSエンドポイントを入力します。コンソールのWeb URLとは異なる場合があります。 |
| Bucket | 対象バケット名だけを入力します。 |
| Region | サービスが指定する署名リージョンを入力します。R2以外で auto を使わないでください。 |
| Addressing style | まず virtual を試し、サービスがpath形式を要求する場合は path にします。 |
| 権限 | 対象バケットのオブジェクト読み書きだけを許可し、アカウント管理権限は付けません。 |
Security
安全な運用
- MagicBagの資格情報はmacOS Keychainへの保存を優先します。
- APIキーはバケット単位、読み書き用途単位で分けます。
- 不要になった端末のキーは、接続先の管理画面から失効させます。
- Secret Access KeyをGit、Issue、チャット、スクリーンショットへ貼り付けません。
- データのバックアップ、履歴、削除復元の仕様は接続先と自分の運用で別途用意します。
このサイトの役割: 設定手順と仕様を案内するだけです。キーの検証、アップロード、保存、解析は行いません。
Troubleshooting
トラブルシューティング
| 症状 | 確認すること |
|---|---|
| AccessDenied | R2 APIトークンが対象バケットへObject Read & Writeを持つか、バケット名とprefixが一致するか確認します。 |
| SignatureDoesNotMatch | R2はSigning regionが auto か、Endpointに余分なパスがないか、キーの前後に空白がないか確認します。 |
| 接続先が見つからない | Endpointが https://<account-id>.r2.cloudflarestorage.com の形式か、ネットワークとバケット名を確認します。 |
| Finderに表示されない | MagicBagアプリの設定保存が成功しているか、File Provider領域を再度開き、アプリを再起動します。 |
| 同期が止まった | アプリの同期状態、ローカルディスク容量、接続先の操作制限を確認します。manifestを手作業で編集しないでください。 |
| 想定より高い料金 | 保存容量だけでなく、Class A/B操作数、データ取得、バックアップやライフサイクル設定を接続先で確認します。 |
Dropbox migration
Dropboxから段階的に移行する
Dropboxのファイルをすぐ削除せず、まずMagicBag側へコピーし、ランダムなファイルを開いて破損がないことを確認してから契約変更を判断してください。
- Dropboxのローカル領域が必要なファイルを取得できる状態か確認します。
- MagicBagの接続テストと小さなテストファイルの同期を完了します。
- 付属の移行ツールでコピーを実行します。コピー元は変更・削除されません。
- ファイル数、合計サイズ、ランダムサンプルのハッシュまたは開封結果を比較します。
- 一定期間問題がないことを確認してからDropboxをダウングレードまたは解約します。
python3 macos/scripts/import-dropbox-direct.py \
--source "$HOME/Library/CloudStorage/Dropbox" \
--state-dir "$HOME/Library/Application Support/MagicBag/dropbox-migration" \
--concurrency 8
長時間の移行では、READMEに記載された再開用runnerを使い、元データを削除する処理と同時に実行しないでください。
Cost reference
料金を判断するときの基準
MagicBagのアプリ価格と、接続先ストレージの月額は別です。R2の料金表、操作数、税、為替は変更されるため、申し込み前に公式料金を確認してください。
MagicBagは「2TBを必ず安くする」製品ではありません。Dropboxの容量をほとんど使っていない個人が、必要な容量だけを自分のバケットで管理するケースを主な対象としています。
Cloudflare R2の最新料金を見る