株式会社SONATSUKI 設立準備中

プロダクト開発中

24H Space

24時間を基本単位とする一時共有型ファイルスペース。Cloudflare の Workers・R2・D1 を利用し、モバイル中心で大容量ファイルの期限付き共有を扱います。

24H Space 紹介動画(音が出ます)

課題

写真や動画などの大きなファイルを一時的に渡したいとき、恒久的なクラウドストレージに置き続けるのは管理の負担やリスクになります。 必要な期間だけ共有し、期限が来たら確実に消える仕組みが求められます。

何を作っているか

24時間を基本単位とした、一時共有型のファイルスペースです。スマートフォンからの利用を中心に設計しています。 結婚式や旅行の写真集め、パソコンとの受け渡し、ペアリングした相手への直接送信に使えます。

技術的アプローチ

  • ファイルの通り道を用途で分ける:共有スペースへのアップロードは、サーバー(Cloudflare Workers)が認証・権限・容量を確かめながら受け取り、ストレージ(Cloudflare R2)へ書き込みます。ダウンロードと、ペアリングした端末への送信・大容量リンクでは、サーバーが短時間だけ有効な署名付きURLを発行し、端末とストレージのあいだで直接やりとりします。ストレージの鍵は、サーバーだけが持ちます。
  • 大容量を、止まっても続きから:大きなファイルは分割して送り、途中で通信が切れても、送り終えた部分から再開できます。ペアリングした端末への送信では、分割した部分を4つずつ同時に送ります。複数ファイルの受信は同時に3件までにして、端末のメモリや通信を圧迫しないようにしています。
  • 受け取ったものを確かめる:ペアリングした端末への送信では、受信側で内容の SHA-256 とサイズを計算し、送信元の値と一致しなければ失敗として扱います。
  • 近距離の直接送信:近くにある端末どうしで、インターネットを経由せずに送る方式(Android・iOS それぞれの近距離通信)を研究しています。つながらないときは、通常の送信方法に切り替えます。

セキュリティの考え方

  • ストレージは非公開で、ダウンロード用のURLは「ダウンロードする」と操作したときにだけ、短い有効期限つきで発行します。共有の期限を過ぎて使えるURLは発行しません。
  • 共有スペースで受け付けるのは写真・動画だけです。アップロード後、サーバーがファイル先頭の中身(JPEG・PNG・WebP の識別バイト、HEIF・MP4・MOV の形式名)を拡張子と照合し、確認が終わるまでは配布しません。これは形式の確認で、ウイルス検査ではありません。
  • 共有リンクの鍵はサーバーにハッシュ化して保存し、元の値は保存しません。
  • アプリからの通信は Firebase の認証と App Check で確かめ、ストレージの鍵をアプリに持たせません。
  • 期限が来たスペースのファイルは、サーバー側の定期処理(Cron)で消去します。

現在の状態

開発中です。近距離の直接送信など、機能の一部は研究・検証の段階にあります。

今後

公開に向けて、安全性と使いやすさ、転送速度の実測による改善を進めます。

つかっている技術

  • Cloudflare Workers
  • R2
  • D1
  • Android
  • Kotlin
  • iOS
  • Swift
  • SwiftUI

アイデアの段階から、ご相談ください。

アプリ開発・Web開発・AI活用・技術相談・共同研究。企画・設計・実装・検証まで一貫して取り組みます。

お問い合わせフォーム