LRTKレフィクシア株式会社

点群OBJを署名付きURLで安全にアップロードする5手順

点群データから生成したOBJファイルをクラウドへアップロードする際は、アップロード画面でファイルを選択して送信するだけでは十分ではありません。OBJ本体のほかに、マテリアル情報やテクスチャ画像が関連する場合があり、ファイル容量、命名規則、保存先、通信中断、整合性確認、閲覧権限まで一連の流れとして整理する必要があります。

現場で取得した点群や三次元モデルには、施工位置、構造物の形状、設備配置、地形、撮影画像など、業務上重要な情報が含まれることがあります。端末へ長期的なクラウド認証情報を保存したり、誰でも繰り返し利用できる固定のアップロード先を共有したりすると、不正なアップロード、保存領域の悪用、意図しない上書きなどにつながる可能性があります。

こうした課題に対応する方法の一つが、署名付きURLを利用した直接アップロードです。一般的な署名付きURLは、特定の保存先と操作に対して期限付きの権限を与える仕組みであり、URLを持つ利用者は、その有効期間と許可範囲の中で処理を実行できます。長期的な認証情報を利用者の端末へ渡さずに済む一方、URL自体が一時的な認証情報として機能するため、表示、転送、記録、再利用を含めて慎重に扱う必要があります。([AWSドキュメント][1])

ただし、署名付きURLを採用しただけで安全性が自動的に確保されるわけではありません。有効期限が長すぎる、保存先を利用者が自由に指定できる、同じURLを再利用できる、アップロード完了を端末の通知だけで判断する、URLを操作記録へそのまま残すといった設計では、期待した効果を得にくくなります。

本記事では、「点群 OBJ アップロード」で情報を探している実務担当者に向けて、署名付きURLを利用して点群OBJを安全にアップロードするための5手順を解説します。システム開発担当者だけでなく、現場からファイルを送信する担当者、データを確認する管理者、クラウド運用を担当する責任者にも役立つよう、準備から完了確認、URL利用終了後の権限管理まで順を追って整理します。

点群OBJアップロードで署名付きURLを使う理由

点群から生成した高密度なメッシュをOBJとして出力すると、一般的な文書ファイルや写真より容量が大きくなりやすくなります。形状を表す頂点や面が多いほどOBJ本体は増大し、マテリアル情報や複数のテクスチャ画像を加えると、送信するデータ一式はさらに大きくなります。そのため、業務システムのアプリケーションサーバーで一度受信してから保存領域へ転送する構成では、通信時間、同時接続時の負荷、一時保存領域、処理待ち時間などを考慮しなければなりません。

署名付きURLを利用する構成では、業務システムが利用者の権限を確認し、対象となる保存先と操作を限定したURLを発行します。その後、利用者の端末は指定されたオブジェクト保存領域へ直接ファイルを送信します。大容量データの本体をアプリケーションサーバーで中継しない設計にすれば、業務システム側の転送負荷や一時保存量を抑えやすくなります。

安全面での利点は、端末へ恒久的なクラウド認証情報を保存しなくてよいことです。端末の紛失、設定ファイルの漏えい、アプリ解析などによって長期的な認証情報が流出するリスクを減らし、利用者へ渡す権限を特定のアップロード処理へ限定できます。

ここで注意したいのは、署名付きURLの「署名」は、OBJファイルの作成者や内容の真正性を証明する電子署名とは異なることです。署名付きURLは、特定のリクエストを許可するための認証情報をURLへ含めたものです。アップロードするファイルが意図した内容と一致するか、転送中に破損していないかを確認するには、保存サービスが対応するチェックサムや、システム側で定義したハッシュ値などを別途利用します。

また、署名付きURLは有効期間中の認証情報として扱います。URLを取得した第三者が、許可された操作を実行できる場合があるため、メール本文へそのまま転記する、操作記録へ完全な文字列を残す、画面共有中に表示する、問い合わせ文へ貼り付けるといった運用は避けます。署名付きURLの導入では、発行方法だけでなく、端末への返却方法、ログのマスキング、期限設定、再発行、利用終了後の処理まで設計することが重要です。

署名付きURLによる安全なアップロードの全体像

安全な点群OBJアップロードは、URLを発行してファイルを送信するだけでは完結しません。基本的な流れは、アップロード申請、利用者確認、保存先決定、署名付きURL発行、ファイル送信、完了通知、保存結果確認、内容検証、正式登録という段階に分けて考えます。

最初に、利用者が業務システムへアップロードを申請します。この段階で、案件、現場、測定日、データ種別、予定ファイル数、予定容量、版などを登録します。業務システムは、利用者が対象案件へデータを登録する権限を持つかをサーバー側で確認し、権限がある場合だけアップロード識別子と保存先を決定します。

保存先は、利用者が送信した文字列をそのまま採用せず、システム側で生成します。案件識別子、アップロード識別子、ファイル種別などを組み合わせ、他の案件や別利用者の領域へ書き込めない構造にします。元のファイル名は表示用の管理情報として保持できますが、保存先の識別子とは分離したほうが、同名ファイル、特殊文字、長い名称、意図しない階層表現による問題を避けやすくなります。

次に、システム側が指定した保存先と操作に対応する署名付きURLを発行します。利用者の端末は、そのURLを使ってOBJ本体や関連ファイルを送信します。複数ファイルを個別に送る場合は、各ファイルに固有の保存先を割り当て、どのファイルが完了したかをアップロード識別子の下で管理します。

送信が終わったら、端末は業務システムへ完了を通知します。ただし、端末から「完了した」と通知されたことだけを根拠に正式登録してはいけません。業務システム側で保存結果を確認し、ファイルの存在、容量、必要に応じたチェックサム、形式、関連ファイルの有無を検証します。すべての確認が終わった時点で、アップロードを正式に完了した状態へ変更します。

署名付きURLは、一時的な搬入口として位置付けると管理しやすくなります。アップロードされたファイルをただちに正式データとして公開するのではなく、検証前の一時領域へ保存し、安全性と整合性を確認してから正式領域へ登録します。正式領域への書き込みは業務システム側だけに限定し、利用者へ発行したアップロードURLから直接変更できない構成にすると、完了後の差し替えを防ぎやすくなります。

手順1 アップロード対象のOBJ一式を整理する

最初の手順は、アップロードするファイルの範囲を明確にすることです。OBJ形式では、形状情報を持つOBJ本体だけで表示が完結するとは限りません。マテリアル情報を持つMTLファイルや、表面の画像を持つテクスチャファイルが関連付けられている場合があります。

OBJ本体だけをアップロードし、関連ファイルを送信し忘れると、受信側では形状だけが表示され、色や写真情報が反映されないことがあります。反対に、不要な画像、過去の出力、作業用の一時ファイルまで同じフォルダへ含めると、送信容量が増え、どのファイルが正式な構成要素なのか判断しにくくなります。

アップロード前には、OBJ本体が参照しているMTLファイルと、MTLファイルが参照しているテクスチャを確認します。ファイル名の大文字と小文字、拡張子、相対参照、特殊文字の有無も確認します。日本語や空白を含む名称が直ちに利用できないとは限りませんが、複数のOS、変換処理、クラウド環境をまたぐ場合は、英数字、ハイフン、アンダースコアなどを中心とした一貫性のある命名規則を採用すると管理しやすくなります。

点群から生成したOBJには、不要な面、重複形状、極端に細かいメッシュ、使用していないマテリアルなどが残っている場合があります。これらを整理せずにアップロードすると、送信時間だけでなく、保存容量、プレビュー生成時間、閲覧端末の負荷も増えます。元データを保管したうえで、共有や確認に必要な精度へ調整したアップロード用データを作成します。

ファイル容量の事前確認も欠かせません。アップロード申請時に予定容量を登録し、実際の容量と照合できるようにします。予定を大きく超えるファイルが選択された場合は、誤ったデータを選んでいないか利用者へ確認を促します。保存サービスやアップロード方式が対応する場合は、送信時の最大容量も技術的に制限します。

複数ファイルをまとめる場合は、圧縮ファイルとして一括送信する方法と、ファイルごとにURLを発行する方法があります。一括送信は参照関係を保ちやすい一方、受信後に安全な展開処理が必要です。個別送信は失敗したファイルだけを再送しやすい一方、全ファイルの完了管理が複雑になります。ファイル数、容量、再送頻度、受信後の処理方法を踏まえて選びます。

圧縮ファイルを利用する場合は、圧縮後の容量だけでなく、展開後の総容量、ファイル数、階層の深さ、個別ファイルの上限を設定します。展開先の外部へ書き出すパスや不自然な上位階層参照を拒否し、システムが割り当てた一時領域の中だけで展開します。圧縮ファイルの展開では、ディレクトリトラバーサルや展開後容量の増大を考慮する必要があります。([OWASP Foundation][2])

アップロード対象を整理する段階で、案件名、測定場所、取得日時、座標系、単位、作成担当者、データ用途、版も管理情報として登録しておくと、受信後の確認が容易になります。これらをファイル名だけに詰め込まず、システム上の属性として保存することが重要です。

手順2 署名付きURLの発行条件を限定する

次の手順は、署名付きURLへ付与する権限を必要最小限に限定することです。安全性を高めるうえで重要なのは、誰の申請に対して、どの保存先への、どの操作を、いつまで許可するのかを明確にすることです。

署名付きURLは、利用者が業務システムへログインし、アップロード権限を確認した後に発行します。URL発行要求に含まれる案件識別子、ファイル名、容量、保存先候補をそのまま信用せず、利用者が対象案件へ登録できるか、申請状態が有効かをサーバー側で確認します。

保存先のパスやオブジェクト識別子は、原則としてシステム側で生成します。利用者が自由な保存先を指定できると、別案件のデータを上書きしたり、本来利用できない領域へ送信したりする余地が生まれます。案件ごと、アップロード処理ごと、ファイルごとに固有の識別子を発行し、その範囲だけへ書き込めるURLを生成します。

有効期限は、実際のアップロードに必要な時間を基準に設定します。ただし、期限の判定方法や、一つのリクエストが開始後に期限をまたいだ場合の扱いは保存サービスやアップロード方式によって異なります。単一送信、分割送信、再開可能な送信の違いを確認し、開始、再試行、各パート送信に必要な時間を見込んで設定します。必要以上に長くせず、期限切れ時には新しい申請状態を確認して再発行します。

アップロード申請には、申請済み、送信中、確認中、完了、取消、期限切れなどの状態を持たせます。完了済みや取消済みの申請から新しいURLを無制限に発行しないようにし、再送が必要な場合は新しいアップロード識別子または版を作成します。

送信方法も限定します。アップロード用URLで閲覧や削除まで許可する必要はありません。指定した保存先へ書き込む操作だけに絞り、閲覧、削除、正式登録は別の権限管理を通じて行います。署名対象に含めた通信ヘッダーがある場合は、URL発行側と送信側で値を一致させます。

可能であれば、保存サービスが対応する容量条件、チェックサム、コンテンツ種別、暗号化条件などを利用します。ただし、利用者が申告した拡張子やコンテンツ種別だけでは、実際の内容を保証できません。OBJを申告しているから安全だと判断せず、受信後にファイル構造を検査します。

上書きの扱いは特に重要です。署名付きURLは、方式によっては有効期限まで複数回利用でき、同じ保存先へ再送すると既存オブジェクトが置き換えられる場合があります。たとえばAmazon S3の公式仕様では、同じキーへのアップロードは既存オブジェクトを置き換え、署名付きURLは期限内に複数回利用できます。アプリケーション上の申請を完了状態へ変更するだけでは、すでに発行したURLの再利用を止められない点に注意が必要です。([AWSドキュメント][1])

対策として、保存先には毎回固有の識別子を使い、検証前の一時領域と正式領域を分けます。保存サービスが対応する場合は、新規作成だけを許す条件付き書き込みも検討します。正式登録後は、一時領域から正式領域へシステム側でコピーまたは移動し、正式領域への利用者書き込みを拒否します。差し替えが必要な場合は、既存ファイルを直接上書きせず、新しい版として登録します。

署名付きURLを端末へ返す際は暗号化された通信を利用し、画面、分析ツール、アクセスログ、エラー記録へ完全なURLを残さないようにします。保存するのは、誰がいつどの案件に対して発行を要求したか、どの保存先が割り当てられたか、どの操作を許可したか、有効期限がいつまでだったかという管理情報です。

手順3 通信条件を確認してOBJをアップロードする

署名付きURLを取得したら、実際にOBJ一式をアップロードします。点群OBJは容量が大きくなりやすいため、通信環境を確認せずに送信を始めると、途中で失敗した際の再送負担が大きくなります。移動中の通信や、電波状態が変化しやすい現場では特に注意が必要です。

送信前には、端末の空き容量、電池残量、通信方法、予定容量、URLの残り有効時間を確認します。アップロード前に圧縮ファイルやチェックサムを作成する構成では、元ファイル以外の一時領域も必要です。処理途中で容量不足にならないよう、実装に応じた余裕を確保します。

送信は暗号化された通信経路で行います。署名付きURLや再開用のセッションURIは、所持者が利用できる認証情報として機能するため、端末へ渡す際もアップロード時もHTTPSを使用します。接続先証明書の検証を無効にせず、信頼できない証明書を許可しない設計にします。Google Cloud Storageの公式資料でも、再開可能アップロードのセッションURIは認証トークンとして扱い、HTTPSで渡すよう説明されています。([Google Cloud Documentation][3])

送信時に指定する通信ヘッダーは、署名付きURLを発行したときの条件と一致させます。署名対象となったヘッダーの値が異なると、検証に失敗する場合があります。ファイル種別、チェックサム、暗号化条件、追加メタデータを署名対象へ含める場合は、発行側と送信側で仕様を統一します。

大容量ファイルでは、進行状況を利用者へ表示します。送信済み容量、全体容量、進捗率、経過時間を示すと、処理が継続しているか判断しやすくなります。残り時間は通信速度によって変動するため、確定値ではなく目安として扱います。

通信が切断された場合に最初からすべてを送り直す構成では、現場の負担が大きくなります。容量が大きいOBJでは、保存サービスが提供する分割アップロードや再開可能アップロードを検討します。完了した部分を保持し、失敗した部分だけを再送できれば、不安定な通信環境でも復旧しやすくなります。

ただし、分割送信や再開可能送信では、認証方法と期限の扱いが単一PUTと異なる場合があります。Amazon S3では各パートの送信を個別に管理する方式があり、Google Cloud Storageでは初期化後のセッションURIを使って継続する方式があります。特定のクラウドの動作を他の方式へそのまま当てはめず、採用するサービスの仕様に合わせて実装します。([AWSドキュメント][4])

有効期限についても、単に「送信中に期限を過ぎたら必ず切断される」とは限りません。たとえばAmazon S3はHTTPリクエスト開始時に期限を確認し、開始後に期限をまたいでも継続する例を示していますが、接続が切れて期限後に再試行すると失敗します。分割アップロードでは各パートが別リクエストになるため、後続パートの開始時に期限切れとなる可能性があります。([AWSドキュメント][1])

利用者が送信画面を閉じた場合や、端末が省電力状態になった場合の挙動も確認します。業務用アプリでバックグラウンド送信を利用できるかは、端末環境と実装によって異なります。継続できない場合は、単に画面を閉じないよう案内するだけでなく、再開可能な状態を保存します。

同じファイルを何度も送信しないよう、送信ボタンの連続操作を制御します。ただし、画面上でボタンを無効にするだけでは不十分です。サーバー側でも同じ申請や同じアップロード識別子に対する重複処理を検出し、複数の保存先や版が意図せず作成されないようにします。

期限切れ、権限不足、容量超過、接続失敗、チェックサム不一致などは、可能な範囲で原因を分けて案内します。内部の保存先や署名情報を表示する必要はありませんが、利用者が再試行、再発行、ファイル見直しのどれを行うべきか判断できる情報は示します。

手順4 完了通知と整合性確認を実施する

ファイル送信のHTTP処理が正常終了しても、点群OBJアップロード全体が完了したとは限りません。端末側で成功と表示された後、業務システム側が保存結果を確認し、ファイル一式を検証する必要があります。

端末は送信後、アップロード識別子と完了情報を業務システムへ通知します。業務システムは利用者の完了通知だけを根拠に正式登録せず、保存領域へ問い合わせて対象ファイルが存在することを確認します。さらに、実際の容量が申請時の予定、端末が送信した情報、保存結果と整合しているかを確認します。

ファイルの整合性を高めるには、保存サービスが対応するチェックサム機能を利用する方法があります。端末側で値を計算して送信し、保存サービス側で検証できる場合は、転送時の不一致を検出しやすくなります。チェックサムの種類、単一送信と分割送信での算出方法、保存後に取得できる値はサービスごとに異なるため、採用する方式を明確に定義します。

保存領域が返すETagや識別値を、無条件にファイル全体のMD5やSHA系ハッシュとして扱ってはいけません。暗号化方式、分割アップロード、チェックサム種別によって意味が異なる場合があります。Amazon S3の公式資料でも、単一送信と分割送信で利用できるチェックサムの扱いが異なり、明示したアルゴリズムと値をサーバー側で検証できる仕組みが説明されています。([AWSドキュメント][5])

OBJファイルの内容確認では、拡張子だけで判断しません。想定したテキスト形式として解析できるか、頂点や面などの記述が極端な量になっていないか、参照する関連ファイルが許可された範囲に収まっているかを確認します。絶対パス、外部URL、不自然な上位階層参照が含まれている場合は、そのまま自動処理しません。

マテリアル情報やテクスチャを含む場合は、必要なファイルがすべてそろっているかを確認します。OBJ本体が存在していても、MTLや参照先の画像が欠けていれば、受信側の表示は不完全になります。ファイル一式を一つのアップロード単位として扱い、必要な検証が終わるまでは正式完了にしない運用が適しています。

受信後にプレビューや変換処理を行う場合は、ファイル受領と変換完了を別の状態として管理します。まず保存結果を確認し、その後に形式検査、変換、プレビュー作成を順番に進めます。変換に時間がかかる場合でも、利用者は「送信済み」「検査中」「変換中」「確認可能」といった状態を区別できます。

アップロードされたファイルは、最初から公開可能な領域へ置かず、隔離された一時領域へ保存します。容量、形式、関連ファイル、チェックサム、必要に応じた安全検査が終わった後、正式な保存領域へシステム側で登録します。これにより、不完全なファイルや想定外のデータが他の利用者から閲覧できる状態になることを防ぎやすくなります。

確認処理に失敗した場合は、容量超過、形式不一致、関連ファイル不足、整合性不一致、変換失敗などの理由を記録します。利用者向けには再対応に必要な範囲で理由を示し、内部構成、保存先、署名情報、詳細な例外内容は公開しません。

手順5 URLの利用を終了し保存後の権限を管理する

最後の手順は、署名付きURLを使ったアップロードが終わった後の管理です。重要なのは、業務システム上の申請を完了させることと、すでに発行済みのURLや一時認証情報が利用できる期間を区別して考えることです。

アップロードが正常に完了したら、申請を確認中または完了状態へ変更し、同じ申請から新しいURLを発行できないようにします。再送が必要な場合は、新しいアップロード識別子または新しい版として開始します。これにより、新規発行の重複は防げますが、すでに端末へ渡したURLの再利用まで自動的に止まるとは限りません。

署名付きURLやSASの失効方法は、保存サービスと認証方式によって異なります。Amazon S3の署名付きURLは、期限または署名に使った認証情報の失効まで利用でき、Google Cloud Storageの署名付きURLは期限または署名鍵のローテーションまで利用できると説明されています。Azure Storageでは、保存済みアクセスポリシーに関連付けた一部のサービスSASをポリシー変更で失効できる一方、ユーザー委任SASやアカウントSASでは同じ仕組みを利用できません。したがって、「URL一件だけを常に即時失効できる」と一般化せず、採用する方式ごとの停止手順を決める必要があります。([AWSドキュメント][1])

通常運用では、有効期限を必要最小限にすること、毎回固有の一時保存先を使うこと、正式領域へ利用者が直接書き込めないようにすることが基本です。保存サービスが対応する条件付き書き込みやオブジェクト保護も検討します。緊急時には、署名に使用した認証情報や鍵の失効、ポリシー変更などが必要になる場合がありますが、他のURLや処理へ影響する可能性があるため、影響範囲を事前に確認します。

正式保存された点群OBJは、公開状態にせず、案件ごとの権限に基づいて閲覧させます。アップロードできる権限、閲覧できる権限、承認できる権限、削除や差し替えができる権限を分けて考えます。現場担当者が特定案件へアップロードできても、すべての案件の点群を閲覧できる必要はありません。

閲覧時にも一時的なURLを利用する場合は、アップロード用URLとは別に発行します。アップロード権限を閲覧へ流用せず、利用者の閲覧権限を確認してから、対象ファイルと有効期限を限定したURLを発行します。

操作記録には、利用者、案件、アップロード識別子、対象ファイル、URL発行日時、送信開始日時、完了日時、容量、検証結果、版などを残します。ただし、署名付きURLやセッションURIの完全な文字列は記録しません。問い合わせ対応や監査に必要なのは、認証情報そのものではなく、どの利用者がどの操作を行ったかという履歴です。

保存後の版管理も重要です。点群OBJを再生成した場合、既存ファイルを上書きすると、過去の確認結果や承認時点のデータを追跡できなくなる可能性があります。新しいアップロードを別の版として登録し、最新版、確認中、承認済み、旧版などの状態を管理します。

保存期間を過ぎたファイルの削除方針も決めておきます。一時アップロードの失敗データ、未完了の分割データ、検証失敗データ、正式保存された成果物では、必要な保存期間が異なります。すべてを無期限に残すのではなく、業務上の必要性、契約条件、社内規程に沿って管理します。

OBJ特有の関連ファイルを安全に扱う方法

OBJ形式のアップロードでは、複数ファイル間の参照関係が重要です。OBJ本体からMTLを参照し、MTLからテクスチャ画像を参照する構成では、一つのファイルだけを確認しても完全性を判断できません。

関連ファイルは、一つのアップロード単位として管理します。アップロード識別子の下にOBJ本体、MTL、テクスチャを保存し、別利用者や別案件のファイルと混在しないようにします。元のフォルダ構造を保持する場合でも、システム側が割り当てた領域の外へ出られないようにします。

ファイル内に記載された参照先は、受信後に正規化して確認します。上位フォルダへ移動する表現、端末内の絶対パス、外部通信先を示す記述が含まれている場合は、そのまま処理しません。許可する参照は、同じアップロード単位の管理領域内に限定します。

同じ名前のテクスチャが複数存在する場合は、どのファイルを参照するのかが曖昧になることがあります。アップロード前に名称を整理するか、受信後の処理で参照関係を維持したまま固有名称へ変換します。名称だけを変更するとOBJやMTLから参照できなくなるため、関連記述も合わせて更新します。

テクスチャ画像には、撮影場所や時刻などの付加情報が含まれている場合があります。外部共有の範囲や業務上の必要性を確認し、不要な付加情報を除去する運用も検討します。点群OBJの形状だけでなく、関連画像に含まれる情報も保護対象として扱います。

圧縮ファイルとして送信する場合は、受信後に隔離された一時領域へ展開し、ファイル数、合計容量、階層の深さ、個別ファイル容量、拡張子を確認します。極端に多数のファイルや深い階層が含まれている場合は、処理を停止できるよう上限を設定します。

OBJを表示用データへ変換する場合は、変換処理を利用者向けの業務システムから分離した環境で実行する方法があります。処理時間、メモリ、CPU、出力容量、同時実行数に制限を設け、一つの大きなファイルによって他の利用者の処理が停止しないようにします。

大容量の点群OBJで通信中断を防ぐ考え方

大容量の点群OBJを扱うときは、通信速度だけでなく、途中で失敗しても復旧できる設計が重要です。現場では、建物内部、山間部、地下、構造物の陰などで通信速度が低下したり、接続が一時的に切れたりすることがあります。

送信前に容量と想定通信量を表示し、利用者が送信する通信環境を選べるようにします。急いでいないデータであれば、安定した通信環境へ移動してから送る判断もできます。自動送信する場合も、利用者が意図しない通信量を消費しないよう、通信種別や送信条件を設定できるようにします。

分割アップロードや再開可能アップロードを採用すると、通信中断時の再送量を抑えられます。各部分の送信結果を管理し、再開時には完了済み部分を確認して残りだけを送ります。

分割単位を小さくしすぎると、通信回数や管理情報が増えます。大きすぎると、失敗した部分を再送するときの負担が増えます。想定するファイル容量、通信品質、端末性能、保存サービスの制限を踏まえて調整します。

再送処理では、失敗直後に無制限に繰り返さないことも重要です。通信障害が継続しているときに短時間で再試行を続けると、端末の電池や通信資源を消費します。再試行間隔を徐々に広げ、一定回数を超えたら利用者へ状態を示します。

送信処理と完了確定処理は分けます。すべての部分が保存された後、端末またはサーバーが完了要求を行い、一つのファイルとして確定します。確定前のデータは正式ファイルとして表示せず、確定処理が失敗した場合に再実行できる状態を保持します。

通信中断への対策は、送信側だけでなく管理側にも必要です。未完了のアップロードを定期的に確認し、一定期間操作がないものを期限切れまたは取消状態へ変更します。その後、一時的に保存された部分を削除し、不要なデータが蓄積しないようにします。

署名付きURL運用で起こりやすい失敗

署名付きURLの運用で起こりやすい失敗の一つは、有効期限を必要以上に長くすることです。大容量ファイルへの配慮から余裕を持たせすぎると、URLが漏えいした場合に利用できる時間も長くなります。実際の送信時間を計測し、単一送信、分割送信、再試行の方式に合わせて期限を調整します。

二つ目は、利用者が保存先を自由に指定できる設計です。画面上で案件を選んでいても、通信内容を書き換えて別の保存先を指定される可能性を考慮し、保存先はサーバー側で決定します。

三つ目は、元のファイル名を保存先としてそのまま使用することです。同名ファイルによる上書き、特殊文字による処理失敗、長すぎる名称、階層表現の混入などが起こり得ます。保存先には固有の識別子を使い、元のファイル名は表示用属性として管理します。

四つ目は、申請を完了状態へ変更すれば、発行済みURLも使えなくなると考えることです。アプリケーションの状態と保存サービス側の認証判定は別です。短い期限、固有の一時保存先、上書き防止、正式領域への書き込み分離を組み合わせます。

五つ目は、アップロード成功を端末の通知だけで判断することです。端末が成功と認識しても、関連ファイル不足、誤ったデータ、検証失敗が残る可能性があります。保存結果とファイル内容を確認してから正式完了にします。

六つ目は、署名付きURLを操作記録へそのまま保存することです。記録を閲覧できる人が、有効期間内のURLを利用できる可能性があります。記録には完全なURLではなく、アップロード識別子、保存先識別子、発行時刻、有効期限などを残します。

七つ目は、アップロード用URLを閲覧や共有にも使うことです。書き込み権限と読み取り権限を分け、それぞれ必要なときに発行します。

八つ目は、拡張子だけでOBJだと判断することです。拡張子やコンテンツ種別は利用者側で変更できるため、受信後に形式と参照構造を確認します。

九つ目は、エラー内容をすべて同じ表示にすることです。期限切れ、通信中断、容量超過、関連ファイル不足、整合性不一致など、利用者が次の対応を判断できる範囲で原因を区別します。

十個目は、期限切れや失敗したデータを放置することです。未完了データが蓄積すると、保存容量を消費し、管理状態も複雑になります。一時データの保存期間と自動削除条件を決めます。

署名付きURLを導入したことだけで安全になったと判断しないことも重要です。利用者認証、案件権限、保存先分離、HTTPS、上書き防止、内容検証、操作記録、保存後の閲覧制御を組み合わせて運用します。

現場と管理側で決めておきたい運用ルール

安全な仕組みを作っても、現場での運用が曖昧であればアップロードミスは減りません。誰が、いつ、どのデータを、どの案件へ送信し、誰が確認するかを決めておく必要があります。

まず、点群取得後にアップロードする担当者を明確にします。取得者が現場から直接送るのか、事務所で内容を確認してから送るのかによって、必要な画面、通信対策、承認工程が変わります。

次に、アップロード前の確認責任を決めます。OBJ本体だけでよいのか、MTLやテクスチャが必要なのか、座標系や単位が正しいか、不要部分を削除したかを確認します。システムで自動確認できる項目と、人が判断すべき項目を分けます。

案件の選択方法も統一します。名称が似ている案件を一覧から選ぶだけでは、誤った保存先へ送る可能性があります。現場コード、場所、工期、担当部署などを合わせて表示し、送信前に確認画面を設けます。

再送と差し替えのルールも必要です。アップロード後に誤りが見つかった場合、既存ファイルを直接上書きするのか、新しい版として登録するのかを決めます。履歴を重視する業務では、新しい版を追加し、採用する版を管理する方式が適しています。

完了確認を誰が行うかも明確にします。アップロード担当者が受領結果まで確認するのか、管理者がプレビューや関連ファイルを確認して承認するのかによって、状態管理が変わります。送信完了、検査完了、承認完了を分けると役割を整理しやすくなります。

端末を紛失した場合や、利用者が担当を外れた場合の対応も決めておきます。すでに発行したURLは期限付きでも、業務システムへのログイン権限が残っていれば、新しいURLを発行できる可能性があります。利用者アカウント、案件権限、発行権限を速やかに停止できる体制が必要です。

操作記録は、問い合わせや監査に必要な期間と、社内規程や契約条件を考慮して保存します。記録へ個人情報や秘密情報を必要以上に含めず、閲覧できる担当者も限定します。

点群取得からアップロードまでを効率化する考え方

点群OBJの安全なアップロードを実現するには、クラウド側の仕組みだけでなく、取得から出力までの流れも整理する必要があります。取得時の設定が統一されていなければ、毎回異なる容量やファイル構成になり、アップロード前の確認作業が増えます。

点群を取得する段階で、用途に合った範囲と密度を選びます。必要以上に広い範囲や細かい形状を取得すると、後工程の負担が大きくなります。ただし、容量削減を優先して必要な形状まで失わないよう、利用目的と要求精度を明確にします。

出力時には、案件情報、測定日、版、座標系、単位などを管理情報として登録します。ファイル名だけに依存すると、名称変更や圧縮によって情報が失われる可能性があります。システム上の属性として保持し、ファイルとの対応を管理します。

アップロード前の確認を定型化すると、担当者による差を減らせます。必要ファイルの有無、容量、座標系、単位、テクスチャの必要性、送信先案件を同じ順序で確認します。確認結果をアップロード申請へ記録すれば、管理者も受信後に判断しやすくなります。

現場で取得したデータを別端末へ移し、名称を変更し、圧縮し、ブラウザから選択して送信する流れは、手順が増えるほど取り違えや送信漏れが起こりやすくなります。点群の取得、確認、出力、案件選択、アップロード申請までを連続した操作にできれば、不要な転記やファイル移動を減らせます。

ただし、操作を自動化するときも、安全確認を省略してはいけません。送信先案件、ファイル容量、関連ファイル、公開範囲など、業務上重要な情報は利用者が確認できるようにします。自動化の目的は確認をなくすことではなく、不要な作業を減らし、重要な判断へ集中できるようにすることです。

点群取得からクラウド共有までの流れを一体的に見直す場合は、現場での操作性だけでなく、座標情報、版管理、閲覧権限、共有期限、一時データ削除まで含めて検討します。署名付きURLは、その流れの中で大容量データを受け渡すための一つの要素です。

まとめ

点群OBJを署名付きURLで安全にアップロードするには、URLを発行する機能だけでなく、アップロード前後の管理を含めて設計する必要があります。

最初に、OBJ本体、MTL、テクスチャなどの対象ファイルを整理し、容量、参照関係、座標系、単位、版を確認します。次に、利用者の権限を確認したうえで、システム側が生成した固有の一時保存先へ、必要な操作だけを許可する署名付きURLを発行します。

実際の送信ではHTTPSを利用し、大容量データでは分割アップロードや再開可能アップロードを検討します。有効期限の判定や再開方法は保存サービスによって異なるため、単一送信、各パート、再試行の動作を確認します。

送信後は、端末からの完了通知だけで判断せず、保存されたファイルの存在、容量、形式、関連ファイル、整合性をサーバー側で確認します。ETagなどの識別値を一般的なハッシュ値と決めつけず、採用した保存方式に対応するチェックサムを定義します。

完了後は、申請からの新規URL発行を停止するとともに、発行済みURLが期限まで再利用される可能性を考慮します。短い期限、毎回固有の一時保存先、上書き防止、正式領域への書き込み分離、版管理を組み合わせることが重要です。

署名付きURLは、長期的な認証情報を現場端末へ渡さずに、大容量の点群OBJを直接アップロードするための有効な方法です。一方で、URLを持つ人が許可範囲内で利用できる一時的な認証情報でもあります。発行、送信、検証、正式登録、閲覧、削除までを一つの業務フローとして整える必要があります。

現場での点群取得からデータ管理までをより円滑につなげる方法を検討する際は、次の選択肢としてLRTK Phoneを確認してみてください。

現場を3Dで残して、あとから測る。
実際の画面と動画で使い方を確認できます。

LRTK Phoneの使い方・実例を見る
資料請求導入相談
現場をスマホで3DスキャンLRTK Phone実例を見る