Неумышленно загрузите тот же файл из AWS S3 Bucket, используя boto3.client ("s3", ) .download_file (PARAMS) - PullRequest
0 голосов
/ 01 апреля 2020

Я пытаюсь загрузить указанный файл c с помощью вызова API в Python3. Я передаю три параметра, а именно:

BucketName; fileObjectKey (in S3 Bucket), ServerName

У меня есть файл abcd123.pdf , хранящийся в корзине S3 в облаке AWS с именем Development. У меня есть другое облако AWS с именем Production, где у меня нет этого файла. Но я загружаю тот же файл, когда меняю имя_сервера с "разработки" на "производство", которые имеют разные учетные данные AWS. Мои URL-адреса вызовов API:

localhost:5005/apicall?BucketName=bucket111&FileObjectkey=input/abcd123.pdf&ServerName=development
localhost:5005/apicall?BucketName=bucket111&FileObjectkey=input/abcd123.pdf&ServerName=production

Здесь я загружаю тот же файл "abcd123.pdf", даже если такого файла нет на производственном сервере. Только я не смог при изменении BucketName или FileObjectKey

Я использую следующую функцию для загрузки файла из корзины S3.

def download_resumes_s3Bucket_PostMethod(BucketName, FileObjectKey, ServerName):  
     try:
            if ServerName == "development":
                aws_access_key_id = "development@@Key0000011"
                aws_secret_access_key = "development@@SecretAccessKey0000012"
            elif ServerName == "production":
                aws_access_key_id = "production@@Key0000022"
                aws_secret_access_key = "production@@SecretAccessKey0000023"

            s3_client = boto3.client('s3', aws_access_key_id=aws_access_key_id, aws_secret_access_key=aws_secret_access_key)

            destination_folder = "../localFolder"

            if FileObjectKey.split(".")[-1] in ("pdf", "docx", "doc"):
                s3_client.download_file(bucket_name, FileObjectKey, os.path.join(destination_folder, s3object_key.split("/")[-1]))
            else:
                raise Exception


        except Exception as err:
            print(err)

Примечание: Они ( Разработка и Производство - это две разные AWS учетные записи, следовательно, две разные AWS учетные данные

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...