-
Notifications
You must be signed in to change notification settings - Fork 0
MS_UploadAndDownload
nishi_74322014 edited this page Sep 1, 2026
·
1 revision
- 戻る(その他、開発の色々)
補足(本ページはハブである): 原文は概要が空欄で、
2 つの子ページへのリンクだけを持つ目次ページである。アップロード・ダウンロード(本ページ) ├ アップロードのいろいろ … 受け取る側の話 └ ダウンロードのいろいろ … 返す側の話なぜこの 2 つを分けて扱うのか——
課題がまったく異なるためである。
アップロード ダウンロード 主な関心 受け取ったものを信用しない 正しく届ける・見せる 代表的な脅威 不正ファイルの実行、容量枯渇、パス トラバーサル 情報漏洩(他人のファイルが取れる) 技術的な難所 サイズ制限、タイムアウト、進捗表示 ファイル名の文字化け、Content-Type、レジューム 性能の壁 メモリに載せてしまう実装 同期 I/O でスレッドを塞ぐ 共通する現在の指針を先に挙げておく。
① 【Web アプリのプロセスを経由させない】 → 大きなファイルはオブジェクト ストレージへ直接やり取りする (SAS URL / 署名付き URL) → アプリは【URL を発行するだけ】 ② 【ストリームで扱う】(byte[] に読み切らない) → メモリ使用量がファイル サイズに比例しない ③ 【ファイル名を信用しない】 → 保存名はサーバ側で決める(GUID 等) → 元のファイル名はメタデータとして DB に持つ ④ 【非同期 API を使う】 → I/O 待ちでスレッドを占有しない([async/await](MS_AsyncAwait))① が最も効果が大きい。
アプリ サーバを経由させないことで、
帯域・メモリ・タイムアウトの問題がまとめて消える。
- ASP.NET Core でのファイルのアップロード
https://learn.microsoft.com/ja-jp/aspnet/core/mvc/models/file-uploads - 共有アクセス署名 (SAS) を使用した Azure Storage リソースへのアクセス許可
https://learn.microsoft.com/ja-jp/azure/storage/common/storage-sas-overview
Tags: 移行, その他、開発の色々
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。