Olá Matheus e Ana, tudo bem com vocês? Peço desculpas pela demora em ti responder! Isso acontece por que é necessário ter o Python instalado na máquina e também ter as credenciais no arquivo ~/.aws/config
isso dentro do diretório do seu usuário, o arquivo deve está da seguinte forma:
[default]
region = us-east-1
output = json
aws_access_key_id = XXXXXXXXXXXXXXXXXXXXXX
aws_secret_access_key = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Ou então vocês podem criar variáveis de ambientes e indicar dentro do arquivo, eu particularmente usei essa abordagem, porque estava usando o Python com um container Docker já que não queria instalar diretamente na minha máquina, então deixei meu arquivo da seguinte forma: Primeiro defini pelo docker-compose as variáveis de ambientes:
version: '3'
services:
web:
image: jonilsonds9/python-teste:v2
ports:
- "7000:7000"
volumes:
- .:/usr/src/app
environment:
- AWS_ACCESS_KEY=XXXXXXXXXXXXXXXXXXXXXX
- AWS_SECRET_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- AWS_REGION=us-east-1
E então usei as variaveis fazendo o uso da instrução import os
, e depois setando as mesmas diretamente na linha s3 = boto3.resource('s3')
, como você podem ver abaixo:
import os
import boto3
s3 = boto3.resource('s3',region_name=os.environ['AWS_REGION'],aws_access_key_id=os.environ['AWS_ACCESS_KEY'],aws_secret_access_key=os.environ['AWS_SECRET_KEY'])
def lista_imagens():
imagens=[]
bucket = s3.Bucket('fa-imagens-js')
for imagem in bucket.objects.all():
imagens.append(imagem.key)
print(imagens)
return imagens
imagens = lista_imagens()
Isso deve resolver os problemas que estão enfrentando, espero ter ajudado!