From 08c842e9f92993a26b3ab22b079bc288533879ba Mon Sep 17 00:00:00 2001
From: Aymane Hafiane <ayhafian@esa-maap.org>
Date: Mon, 5 Feb 2024 18:11:40 +0100
Subject: [PATCH] BIOMASS-3094-s3-Authz show error for HTTP 403

---
 maap-s3.py | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/maap-s3.py b/maap-s3.py
index b0a978c..99e6e3e 100755
--- a/maap-s3.py
+++ b/maap-s3.py
@@ -242,7 +242,7 @@ def upload(sourceFile, destination, private: bool):
 
             response = requests.put(url, headers={'Authorization': 'Bearer ' + token},
                                     params={'private': private}, allow_redirects=False)
-            if response.status_code == 401:
+            if response.status_code == 401 or response.status_code == 403:
                 print(response.content)
                 sys.exit(1)
             location = response.headers['Location']
@@ -293,7 +293,7 @@ def upload_multipart(sourceFile, destination, private_bucket: bool):
     url = "https://gravitee-gateway."+MAAP_ENV_TYPE.lower()+".esa-maap.org/s3/generateUploadId"
     params={'bucketName': bucketName, 'objectKey': key, 'private': private_bucket}
     response = requests.get(url, params=params, headers={'Authorization': 'Bearer ' + token})
-    if response.status_code == 401:
+    if response.status_code == 401 or response.status_code == 403:
         print(response.content)
         sys.exit(1)
 
@@ -306,7 +306,7 @@ def upload_multipart(sourceFile, destination, private_bucket: bool):
     params = {'bucketName': bucketName, 'objectKey': key, 'nbParts': nbParts, 'uploadId': uploadId,
               'private': private_bucket}
     response = requests.get(url, params = params, headers = {'Authorization': 'Bearer '+token})
-    if response.status_code == 401:
+    if response.status_code == 401 or response.status_code == 403:
         print(response.content)
         sys.exit(1)
 
@@ -334,7 +334,7 @@ def upload_multipart(sourceFile, destination, private_bucket: bool):
                 time.sleep(60)
                 resume()
 
-            if response.status_code == 401:
+            if response.status_code == 401 or response.status_code == 403:
                 print(response.content)
                 sys.exit(1)
             #print(response.headers)
@@ -423,7 +423,7 @@ def resume():
             params = {'bucketName': bucketName, 'objectKey': key, 'nbParts': nbParts, 'uploadId': uploadId,
                       'private': isPrivate}
             response = requests.get(url, params = params, headers = {'Authorization': 'Bearer '+token})
-            if response.status_code == 401:
+            if response.status_code == 401 or response.status_code == 403:
                 print(response.content)
                 sys.exit(1)
 
@@ -527,7 +527,7 @@ def delete(destination, private):
                                    headers={'Authorization': 'Bearer ' + token},
                                    params={'private': str(private)},
                                    allow_redirects=False)
-        if response.status_code == 401:
+        if response.status_code == 401 or response.status_code == 403:
             print(response.content)
             sys.exit(1)
 
@@ -563,7 +563,7 @@ def download(path, name, private: bool):
         url = "https://gravitee-gateway."+MAAP_ENV_TYPE.lower()+".esa-maap.org/s3/"+path
         response = requests.get(url, headers = {'Authorization': 'Bearer '+token}, params={'private': str(private)},
                                 allow_redirects=False)
-        if response.status_code == 401:
+        if response.status_code == 401 or response.status_code == 403:
             print(response.content)
             sys.exit(1)
         location = response.headers['Location']
-- 
GitLab