我不知道有任何選項可以允許這樣做。 但我有另一種方式的概念,這有點複雜,但可能是一個很好的選擇。 你可以使用nginx構建一個反向代理,它將通過你自己的域爲你提供google圖像。然後,您可以將原始請求中的文件名作爲參數發送。在nginx中,您可以在代理請求之前從請求中刪除文件名參數,並將其添加爲標題以在響應中定義文件名。 這是你在nginx的配置過程非常簡單明瞭:
location /image-storage/ {
expires 30d;
#Get rid of headers to be overwritten
proxy_hide_header Pragma;
proxy_hide_header Cache-Control;
proxy_hide_header Content-Disposition;
#Add caching headers
add_header Pragma public;
add_header Cache-Control "public";
#If the parameter "filename" is sent, use it as filename
if ($arg_filename) {
add_header Content-Disposition 'inline; filename="$arg_filename"';
}
#If the parameter "dl_filename" is sent, use it as filename and init download (attachment)
if ($arg_dl_filename) {
add_header Content-Disposition 'attachment; filename="$arg_dl_filename"';
}
#Proxy the request to google
proxy_pass https://lh3.googleusercontent.com/;
proxy_set_header Host lh3.googleusercontent.com;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffering off;
}
這種方式就像一個網址:https://yourdomain.com/image-storage/longgoogletokenhere?dl_filename=test.jpg將被代理到https://lh3.googleusercontent.com/longgoogletokenhere?dl_filename=test.jpg和響應將獲得緩存和文件名的新頭。