るぅもも園営業部-多趣味おやぢの動物事情-

アカビタイムジオウム情報メイン。ペット情報、IT技術や料理等いろんなことを書きまくっています。

【技術メモ】ファイルダウンローダーについて

time 2016/01/22

ちょっとサーバの障害対応を頼まれて、原因調査と、対策を検討したので、メモとして残します。

【現象】
Perlを使用して、1GByteのファイルをダウンロードさせる仕組みがあるが、途中でダウンロードが止まってしまう

【状況】
・ 1GByteのファイルを静的URLにすれば問題なくいける
・ 自分のサーバで同じ仕組みを実装したら、メモリめっちゃ食ってた
⇒ サーバのリミットに引っかかってる可能性が高い

【やってみたこと】
・ ダウンロードの仕組みを調整。メモリを食わないように、バッファリング方式に変更
⇒ 今度はCPUが20%とか使っちゃうわ~という結果に

【結論】
・CGIやPHPを経由したダウンロード機能では、リミットに引っかかってダウンロードできない可能性が高い
⇒ 静的リンクでダウンロードさせるほうが安全
だが、有料コンテンツのため、誰でもアクセスできるURLは困る

【対策】
幸いにも、サーバはシンボリックリンク参照は許可されていたため、以下の方式をとることにする
・ 支払い確定
・ ID、パスワード発番
・ そのID、パスワードを使用してログインし、ダウンロード画面を出したタイミングでコンテンツに対するシンボリックリンクを作成
・ そのシンボリックリンクのURLを提示
・ シンボリックリンクを一定時間たつと削除するcronの設定

よしよし。理論上はイケるし、以下のようにPerlからシンボリックリンク作成もいける
(事前検証はPHPでやっちゃった)

http://itpro.nikkeibp.co.jp/article/Reference/20080930/315768/

sponsored link

down

コメントする




ペット

ライフハック

雑記

技術情報

ランキング

amazon

このブログを書いている人

葉月 要

葉月 要

SE歴13年。 Webでもクラサバでもなんでもござれのオールラウンダー。 Java、C#、ExcelVBA等の言語から、DynamicsCRM、Salesfroceなども手掛ける。 洞察、検証から最適解を探そうとする合理主義的かつ動物好き 文章作成や技術相談などがありましたらクラウドワークス等でお受けいたします。 連絡はこちらまでkaname_connect☆rulumomo.ddo.jp



sponsored link

検索