OneDrive を転送元として、SharePoint Online または Dropbox へファイルを移行する .NET 10 CLI ツールです。
- 最新バージョン:
0.3.0 - 配布方式: GitHub Releases(MSI インストーラー / Windows ZIP / Linux・macOS tar.gz)
- 実運用実績: OneDrive -> Dropbox 大容量転送フローは検証済み
- 実装状況: SharePoint 向け基本機能は実装済み、最適化フェーズは継続中
- 転送先切り替え:
destinationProviderでsharepoint/dropboxを選択 - Dropbox 最適化パイプライン:
- SQLite 状態管理(再開・再試行・チェックポイント)
- bounded channel +
Parallel.ForEachAsyncによる並列実行 status/dashboardによる進捗可視化
- Graph/OneDrive 連携:
- 4MB 未満は単純アップロード
- 4MB 以上は
LargeFileUploadTaskによるチャンク転送 oneDriveSourceFolder指定によるサブフォルダ起点クロール
- 運用補助:
watchdogによるフリーズ検知・再起動file-crawlerによるクロール比較/検証quality-metrics/security-scanによる品質チェック
src/
CloudMigrator.Cli/ CLI エントリーポイント
CloudMigrator.Setup.Cli/ 初期設定支援CLI(bootstrap/doctor/init/verify)
CloudMigrator.Core/ ドメイン・ユースケース
CloudMigrator.Providers.Abstractions/ IStorageProvider 契約
CloudMigrator.Providers.Graph/ Microsoft Graph 実装
CloudMigrator.Providers.Dropbox/ Dropbox 実装
CloudMigrator.Dashboard/ Webダッシュボード
CloudMigrator.Observability/ 構造化ログ
CloudMigrator.Testing/ テスト共通ユーティリティ
tests/
unit/ integration/ e2e/
- .NET 10 SDK
- PowerShell 5.1 以上(Windows PowerShell 5.1 / PowerShell 7+。
tools/Get-DropboxToken.ps1を使う場合) - セットアップCLI(
setup bootstrap/setup init)で生成される%APPDATA%\CloudMigrator\configs\config.jsonと環境変数
設定優先順位は以下です。
- 環境変数
configs/config.json- 既定値
GitHub Releases から最新版をインストール後、以下の手順で転送を開始できます。 詳細なインストール手順は usage.md を参照してください。
- セットアップウィザードを実行
cloud-migrator setup bootstrap --destination dropbox- 接続検証
cloud-migrator setup doctor
cloud-migrator setup verify --skip-sharepoint- 転送開始
cloud-migrator transfer- 進捗確認
cloud-migrator status
cloud-migrator dashboardソースからビルドして実行する場合は、各コマンド先頭を
dotnet run --project src/CloudMigrator.Cli --に置き換えてください。たとえばcloud-migrator setup doctorはdotnet run --project src/CloudMigrator.Cli -- setup doctorです。
transfer:destinationProvider=dropboxなら Dropbox パイプラインで転送- それ以外は SharePoint パイプラインで転送
status: Dropbox 転送 DB から進捗ダッシュボードを表示dashboard: Web UI で転送メトリクスを表示rebuild-skiplist: SharePoint のskip_listを再構築(転送なし)watchdog:transferの自動監視・再起動file-crawler: クロール/比較/検証補助quality-metrics: テストとカバレッジの集計security-scan: NuGet 脆弱性スキャン
bootstrap: 対話型セットアップdoctor: 設定の妥当性診断init:config.json/.envテンプレート生成verify: Graph/Dropbox 疎通確認
詳細オプションは usage.md を参照してください。
- 機密情報は環境変数のみで管理
MIGRATOR__GRAPH__CLIENTSECRETMIGRATOR__DROPBOX__CLIENTSECRET
destinationProviderの既定はsharepoint- Dropbox 長時間運用では以下を推奨
MIGRATOR__DROPBOX__REFRESHTOKENMIGRATOR__DROPBOX__CLIENTIDMIGRATOR__DROPBOX__CLIENTSECRET
サンプルは sample.env を参照してください。config.json は setup init コマンドで %APPDATA%\CloudMigrator\configs\config.json に生成されます。
dotnet build CloudMigrator.slnx
dotnet test tests/unit/CloudMigrator.Tests.Unit.csproj
dotnet test tests/integration/CloudMigrator.Tests.Integration.csproj- usage.md: コマンド詳細と運用フロー
- docs/architecture.md: モジュール構成と実行時アーキテクチャ
- docs/architecture/ai-implementation-guardrails.md: AI 実装時の MVVM / provider / route 境界ガードレール
- docs/dataflow.md: 設定、状態 DB、転送、可観測性のデータフロー
- docs/manual-test-runbook.md: 手動テスト手順
- docs/implementation-plan.md: 実装計画
- tasks.md: 現在の進捗
- CHANGELOG.md: 変更履歴
LICENSE を参照してください。