]> git.ekhem.eu.org Git - gdrive_proxy.git/commitdiff
Persist account information between requests with a cookie.
authorJakub Czajka <jczajka@google.com>
Sat, 4 May 2024 10:12:53 +0000 (12:12 +0200)
committerJakub Czajka <jczajka@google.com>
Sat, 4 May 2024 10:12:53 +0000 (12:12 +0200)
amend.sh [changed mode: 0644->0755]
delete.sh
download.sh
gdrive_proxy.conf
upload.sh

old mode 100644 (file)
new mode 100755 (executable)
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 "
 </head>
 <body>"
 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
 
index 49298b21fc417e914f6fd68e28407d8903f54b4d..38ad6681cb317049c3145b7f51fec18b1ff2e148 100755 (executable)
--- a/delete.sh
+++ b/delete.sh
@@ -1,9 +1,11 @@
 #!/bin/sh
-# Copyright (c) 2023 Jakub Czajka <jakub@ekhem.eu.org>
+# Copyright (c) 2023-2024 Jakub Czajka <jakub@ekhem.eu.org>
 # 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 "
   </style>
 </head>
 <body>
-$(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})
 </body>
 </html>"
index f0d0f533979475e6a92b5322b48d79408aee8308..042feb5046c26b00a366041431d63c7c35994c2f 100755 (executable)
@@ -1,9 +1,11 @@
 #!/bin/sh
-# Copyright (c) 2023 Jakub Czajka <jakub@ekhem.eu.org>
+# Copyright (c) 2023-2024 Jakub Czajka <jakub@ekhem.eu.org>
 # 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 "
 </head>
 <body>"
 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 "\
 </body>
index dedb4e57619b743677b6999c2365aecb0382fba3..3763a3234af03d345f7b5bb8c71e218f4b651264 100644 (file)
@@ -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;
     }
 
index bfe8213b280e9104ae5d479aab19b7d6e98e536d..cd6c5a368d6c757d14b58b62de6fc2915a7514e7 100755 (executable)
--- a/upload.sh
+++ b/upload.sh
@@ -1,9 +1,11 @@
 #!/bin/sh
-# Copyright (c) 2023 Jakub Czajka <jakub@ekhem.eu.org>
+# Copyright (c) 2023-2024 Jakub Czajka <jakub@ekhem.eu.org>
 # License: GPL-3.0 or later.
 
 . /etc/environment
 
+AUTH_TOKEN="${prod_dir}/${gdrive_proxy}/${ACCOUNT}.json"
+
 # POST request has the following format.
 #
 # ------<boundary>
@@ -48,7 +50,7 @@ echo "
 </head>
 <body>"
 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 "\
 </body>