Я пытаюсь загрузить указанный файл 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 учетные данные