Last active
September 20, 2023 20:01
-
-
Save userqq/f75875f0fe7bbf6c38b3fb8a00d3dea2 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# # # # # # # # # # | |
# USAGE: | |
# | |
# $accelUri = '' | |
# . '/' . 'internal_google_drive' | |
# . '/' . $google_drive_file_id | |
# . '/' . $filename | |
# . '/' . $google_drive_access_token; | |
# http_response_code(204); | |
# header('X-Accel-Redirect: ' . rawurlencode($accelUri)); | |
# | |
# # # # # # # # # # | |
location ~* ^/internal_google_drive/(.+)/(.+)/(.*)$ { | |
limit_rate 1m; | |
# Do not allow people to mess with this location directly | |
# Only internal redirects are allowed | |
internal; | |
# nginx has to be able to resolve the remote URLs | |
resolver 8.8.8.8; | |
# Location-specific logging | |
access_log /var/log/nginx/internal_google_drive.access.log; | |
error_log /var/log/nginx/internal_google_drive.error.log; | |
# Extract download url from the request | |
set $download_id $1; | |
set $filename $2; | |
set $token $3; | |
# Compose download url | |
set $download_url https://www.googleapis.com/drive/v3/files/$download_id?alt=media; | |
# Set download request headers | |
proxy_set_header Authorization 'Bearer $token'; | |
# The next two lines could be used if your storage | |
# backend does not support Content-Disposition | |
# headers used to specify file name browsers use | |
# when save content to the disk | |
proxy_hide_header Content-Disposition; | |
add_header Content-Disposition 'attachment; filename="$filename"'; | |
# Do not touch local disks when proxying | |
# content to clients | |
proxy_max_temp_file_size 0; | |
# Download the file and send it to client | |
proxy_pass $download_url; | |
post_action @dispose; | |
} | |
location @dispose { | |
set $path https://127.0.0.1/dl/dispose; | |
proxy_method GET; | |
proxy_set_header Host $server_name; | |
proxy_pass $path; | |
} |
Hi @abdulaziz-git !
As far as i know rclone able to serve files via http by itself, without mointing folder.
Please check https://rclone.org/commands/rclone_serve/
I was looking to see if it's possible to get gindex work with ngnix.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hi @userqq
Thanks for you explanation
I see so the function is same as using rclone mounting to folder and serve download through that folder
Thanks