我使用Laravel(ocotber CMS),並使用Spatie URL Signer包來保護我的文件用有限的生命鏈接開發我的項目有限的生命週期鏈接保護的文件。我上傳我的文件由.htaccess
文件中的黑名單保護目錄。通過生成使用Spatie URL簽名者
我的.htaccess: RewriteRule ^storage/app/uploads/protected/.* index.php [L,NC]
我的文件上傳至:生成的 UrlSigner::sign('http://localhost:8888/storage/app/uploads/protected/58b/d45/789/58bd457897aab778152349.pdf');
:生成與到期日的鏈接 /storage/app/uploads/protected/58b/d45/789/58bd457897aab778152349.pdf
代碼鏈接看起來像: http://localhost:8888/storage/app/uploads/protected/58b/d45/789/58bd457897aab778152349.pdf?expires=1488905432&signature=fd82b06725096b8e6c43221a9616e420
另外我還添加了使用包的中間件來保護鏈接的路由處理代碼。 Route::get('protected-route', ['middleware' => 'signedurl', function() { return 'Hello secret world!'; }]);
但是,生成的鏈接不可用於下載。 我不懷疑這是因爲我有一個受保護的文件夾中的文件。當我嘗試使用公用文件夾時,該文件可用。但那麼我的文件就沒有保護。因爲你可以看到上面的生成的鏈接中包含的路徑,我的文件夾中。