2

要するに、これは機能しません:

location ~* /grid/(.+)/ {
         gridfs filestore field=filename type=string root_collection=storage.$1;
}

これはhttps://github.com/mdirolf/nginx-gridfsを使用しています

それには複数の問題があります。次の理由により、場所の正規表現では実行できないと思います。

  1. グループはプロセスではなく、$1 は "storage.$1" コレクション名として逐語的に使用されています。
  2. おそらくCコードでは、ファイル名は、正規表現で指定された正確な数の文字を削除することにより、一致から文字を取り除くことによって取得されます。つまり、「/grid/(.+)/」は 10 文字の長さであり、これは URL 全体から削除される文字数です (明らかにドメインを除いて)。私はこれをかなりテストしました (C コードを実行するだけです)。これが実行していることです。

これは、何らかの形で書き換えるか、別のnginx構成でまだ実行できると想定しています。

最後の手段として、プロジェクトのメンテナーに連絡しますが、nginx の構成は、宣伝どおりに機能するため、問題を回避するのに十分な柔軟性があるようです。

location ~* /grid/ABC/ {
         gridfs filestore field=filename type=string root_collection=storage.ABC;
}
4

0 に答える 0