From b0e71c2a44a04358fab51a2f076dd97324c0692d Mon Sep 17 00:00:00 2001 From: Jakub Czajka Date: Sat, 4 May 2024 12:12:53 +0200 Subject: [PATCH] Persist account information between requests with a cookie. --- amend.sh | 6 ++++-- delete.sh | 6 ++++-- download.sh | 6 ++++-- gdrive_proxy.conf | 6 ++++++ upload.sh | 6 ++++-- 5 files changed, 22 insertions(+), 8 deletions(-) mode change 100644 => 100755 amend.sh diff --git a/amend.sh b/amend.sh old mode 100644 new mode 100755 index 46f94c7..f376fe6 --- a/amend.sh +++ b/amend.sh @@ -4,6 +4,8 @@ . /etc/environment +AUTH_TOKEN="${prod_dir}/${gdrive_proxy}/${ACCOUNT}.json" + FILE_TO_AMEND=$(sed --expression='/Content-Disposition.*filename/!d' \ --expression='s/^.*filename=\"// ; s/\".*$//' "${PATH_TO_FILE}") @@ -37,7 +39,7 @@ echo " " echo "Downloading ${FULL_NAME}" -python3 -u -m gdrive_knife 2>&1 download --token ${gdrive_auth_token} \ +python3 -u -m gdrive_knife 2>&1 download --token ${AUTH_TOKEN} \ --key ${gdrive_encryption_key} ${FULL_NAME} /tmp if [ ! -d "/tmp/${BASE_NAME}" ] @@ -48,7 +50,7 @@ else mv ${PATH_TO_FILE} /tmp/${BASE_NAME}/${FILE_TO_AMEND} echo "Uploading ${FULL_NAME}" - python3 -u -m gdrive_knife 2>&1 upload --token ${gdrive_auth_token} \ + python3 -u -m gdrive_knife 2>&1 upload --token ${AUTH_TOKEN} \ --key ${gdrive_encryption_key} /tmp/${BASE_NAME} ${FULL_NAME} fi diff --git a/delete.sh b/delete.sh index 49298b2..38ad668 100755 --- a/delete.sh +++ b/delete.sh @@ -1,9 +1,11 @@ #!/bin/sh -# Copyright (c) 2023 Jakub Czajka +# Copyright (c) 2023-2024 Jakub Czajka # License: GPL-3.0 or later. . /etc/environment +AUTH_TOKEN="${prod_dir}/${gdrive_proxy}/${ACCOUNT}.json" + # Replace %2F with '/'. NAME=$(echo ${NAME_ON_DRIVE} | sed 's/%2F/\//g') @@ -21,6 +23,6 @@ echo " -$(python3 -u -m gdrive_knife 2>&1 delete --token ${gdrive_auth_token} ${NAME}) +$(python3 -u -m gdrive_knife 2>&1 delete --token ${AUTH_TOKEN} ${NAME}) " diff --git a/download.sh b/download.sh index f0d0f53..042feb5 100755 --- a/download.sh +++ b/download.sh @@ -1,9 +1,11 @@ #!/bin/sh -# Copyright (c) 2023 Jakub Czajka +# Copyright (c) 2023-2024 Jakub Czajka # License: GPL-3.0 or later. . /etc/environment +AUTH_TOKEN="${prod_dir}/${gdrive_proxy}/${ACCOUNT}.json" + # Replace %2F with '/' and remove %0D%0A. FULL_NAME=$(echo ${NAME_ON_DRIVE} | sed 's/%2F/\//g; s/%0D%0A//g') BASE_NAME=$(basename "${FULL_NAME}") @@ -30,7 +32,7 @@ echo " " echo "Downloading ${FULL_NAME}" -python3 -u -m gdrive_knife 2>&1 download --token ${gdrive_auth_token} \ +python3 -u -m gdrive_knife 2>&1 download --token ${AUTH_TOKEN} \ --key ${gdrive_encryption_key} --leave-as-archive ${FULL_NAME} /tmp echo "\ diff --git a/gdrive_proxy.conf b/gdrive_proxy.conf index dedb4e5..3763a32 100644 --- a/gdrive_proxy.conf +++ b/gdrive_proxy.conf @@ -26,6 +26,8 @@ server { } location ~ ^/list(.*) { + add_header Set-Cookie "account=${dollar}arg_account"; + include fastcgi_params; fastcgi_pass unix:/var/run/fcgiwrap.socket; @@ -44,6 +46,7 @@ server { fastcgi_pass unix:/var/run/fcgiwrap.socket; fastcgi_param NAME_ON_DRIVE ${dollar}arg_name; + fastcgi_param ACCOUNT ${dollar}cookie_account; fastcgi_param SCRIPT_FILENAME ${dollar}document_root/delete.sh; } @@ -56,6 +59,7 @@ server { fastcgi_param NO_BUFFERING ""; fastcgi_param NAME_ON_DRIVE ${dollar}arg_name; + fastcgi_param ACCOUNT ${dollar}cookie_account; fastcgi_param SCRIPT_FILENAME ${dollar}document_root/download.sh; } @@ -80,6 +84,7 @@ server { fastcgi_param NO_BUFFERING ""; fastcgi_param PATH_TO_FILE ${dollar}request_body_file; + fastcgi_param ACCOUNT ${dollar}cookie_account; fastcgi_param SCRIPT_FILENAME ${dollar}document_root/upload.sh; } @@ -97,6 +102,7 @@ server { fastcgi_param NO_BUFFERING ""; fastcgi_param PATH_TO_FILE ${dollar}request_body_file; + fastcgi_param ACCOUNT ${dollar}cookie_account; fastcgi_param SCRIPT_FILENAME ${dollar}document_root/amend.sh; } diff --git a/upload.sh b/upload.sh index bfe8213..cd6c5a3 100755 --- a/upload.sh +++ b/upload.sh @@ -1,9 +1,11 @@ #!/bin/sh -# Copyright (c) 2023 Jakub Czajka +# Copyright (c) 2023-2024 Jakub Czajka # License: GPL-3.0 or later. . /etc/environment +AUTH_TOKEN="${prod_dir}/${gdrive_proxy}/${ACCOUNT}.json" + # POST request has the following format. # # ------ @@ -48,7 +50,7 @@ echo " " echo "Uploading ${NAME_ON_DRIVE}" -python3 -u -m gdrive_knife 2>&1 upload --token ${gdrive_auth_token} \ +python3 -u -m gdrive_knife 2>&1 upload --token ${AUTH_TOKEN} \ --key ${gdrive_encryption_key} ${PATH_TO_FILE} ${NAME_ON_DRIVE} echo "\ -- 2.39.5