Web サーバー内でファイルをダウンロード/削除するためのスクリプトを「埋め込む」方法はありますか?

Web サーバー内でファイルをダウンロード/削除するためのスクリプトを「埋め込む」方法はありますか?

サーバーを次のように動作させる必要があります:

要求されたファイルがローカルに存在するかどうかを確認します。

  • もしあれば、すぐに提供してください
  • そうでない場合は、REQUEST_URIをダウンロードするスクリプトに渡します。
  • ファイルに?delete=1 がある場合は、スクリプトを呼び出して削除します。

私は nginx (404 エラー ハンドラーを使用) と PHP を使用してこの動作を正常に実装しました。問題は、これを別のサーバーに実装するには、nginx と php の両方をインストール/コンパイルする必要があることです。

私の質問は、スタックから PHP を削除し、nginx (または他のサーバー) を立ち上げてその作業を実行する方法があるかどうかです。私にとって理想的な方法は、サーバーから直接 bash スクリプト/コマンドを実行/呼び出すことができることです。

誰か私に正しい方向を指し示してくれる人はいませんか?

答え1

あなたがしようとしていることは、普通の CGI とシェル スクリプトで簡単に実現できます。CGI を有効にして実装する方法は、サーバーによって異なります。Nginxすべき可能かどうかはわかりませんが、Apache は可能だとわかっています。ドキュメントを参照するか、特定の Web サーバーで CGI を有効にする方法について具体的な質問をしてください。

ファイルが存在するかどうかをテストして表示する簡単な bash ロジック:

#!/bin/bash

FILE="/path/to/file"
URI="http://example.com/file"

/bin/echo "Content-type: text/plain"
/bin/echo

if [ -f $FILE ]; then
  /bin/cat $FILE
else
  /usr/bin/wget $URI
fi

${QUERY_STRING} を解析して削除アクションを取得できます。完全なソリューションとエラー処理については、演習として残しておきます。少し複雑で、Q&A 形式の範囲を超えています。

見る:Bash CGI スクリプトでの QUERY_STRING の解析

関連情報