@@ -1199,11 +1199,11 @@ sequenceDiagram
11991199
12001200業務システムにおいても点検結果の写真や動画、WordやPDFなど非構造データをアップロードすることがしばしば求められる。クラウド環境ではアップロードされたコンテンツは、最終的に通常オブジェクトストレージに格納することとするが、手法については以下のようにいくつかパターンがある。
12011201
1202- | 手法 | 説明 | Poc/Cons |
1203- | :-------------------- | :----------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------- |
1204- | 1.multipart/form-data | RFC 2388でも定義された、古くから利用される方式 | ✅️枯れている<br >⚠️ブラウザ以外のクライアントからは扱いにくい |
1205- | 2.Base64 | ファイルをBase64形式にエンコードして、通常のフォームデータとして送信する方法 | ✅️通常のリクエストボディでJSON要素の値として設定できるので楽<br >⚠️ファイルサイズが大きくなるため、モバイルなどのクライアントでは帯域の観点で懸念 |
1206- | 3.署名付きURL | オブジェクトストレージで特定の期間内にのみ有効な一時的なURLを生成し、そのURLを使用してアップロードを行う方法 | ✅️負荷をクラウドサービス側にオフロードできる<br >✅️ Amazon API Gateway を利用する場合は、2023 年 6 月時点で[ ペイロード上限が 10MB] ( https://docs.aws.amazon.com/apigateway/latest/developerguide/limits.html ) 、[ AWS Lambda でもペイロード制限がある] ( https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/gettingstarted-limits.html#api-requests ) ため、許容するファイルサイズによってはこの手法一択となる<br >⚠️メタデータ系の登録は、別途Web APIを叩く必要があるなど、クライアント側に手続きが発生 |
1202+ | 手法 | 説明 | Poc/Cons |
1203+ | :-------------------- | :----------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
1204+ | 1.multipart/form-data | RFC 2388でも定義された、古くから利用される方式 | ✅️枯れている<br >⚠️ブラウザ以外のクライアントからは扱いにくい |
1205+ | 2.Base64 | ファイルをBase64形式にエンコードして、通常のフォームデータとして送信する方法 | ✅️通常のリクエストボディでJSON要素の値として設定できるので楽<br >⚠️ファイルサイズが大きくなるため、モバイルなどのクライアントでは帯域の観点で懸念 |
1206+ | 3.署名付きURL | オブジェクトストレージで特定の期間内にのみ有効な一時的なURLを生成し、そのURLを使用してアップロードを行う方法 | ✅️負荷をクラウドサービス側にオフロードできる<br >✅️ Amazon API Gateway を利用する場合は、2023 年 6 月時点で[ ペイロード上限が 10MB] ( https://docs.aws.amazon.com/apigateway/latest/developerguide/limits.html ) 、[ AWS Lambda でもペイロード制限がある] ( https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/gettingstarted-limits.html#api-requests ) ため、許容するファイルサイズによってはこの手法一択となる<br >⚠️メタデータ系の登録は、別途Web APIを叩く必要があるなど、クライアント側に手続きが発生 |
12071207
12081208本規約の推奨は以下の通り。
12091209
@@ -1437,7 +1437,7 @@ sequenceDiagram
14371437| :----------- | :----------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------- |
14381438| 説明 | サーバー側で更新があるまで待機し、更新があったタイミングで応答。再びクライアント側から再接続してもらう | HTTPプロトコルを使用し、クライアント側からサーバへHTTPリクエストを送り、その接続を維持することで、サーバから継続的にデータをストリーム送信する | 双方向通信が可能で、サーバ/クライアント間でメッセージを送受信できる。バイナリ送信も可能で効率が良い |
14391439| 通信方向 | 一方向 | 双方向 | 双方向 |
1440- | 即時性 | ❌️1度のやり取りでヘッダなどが付与されるためオーバーヘッドあり | ⚠️高い | ✅️最も低レイテンシ |
1440+ | 即時性 | ❌️1度のやり取りでヘッダなどが付与されるためオーバーヘッドあり | ⚠️高い | ✅️最も低レイテンシ |
14411441| プロキシ対応 | ✅️高い | ✅️高い | ⚠️ブロックされる可能性がほかと比較すると高い |
14421442| 接続維持 | ❌️自前実装(再接続実装) | ✅️自動再接続機能がある | ⚠️クライアント側で再接続ロジックを実装 |
14431443| 保守運用性 | ⚠️古い手法である | ✅️比較的低い | ⚠️WebSocketの扱いをサーバ/クライアントで慣れる必要がある |
0 commit comments