Você está na página 1de 1

Quando você chama s3.

Object(file_path), está criando uma referência a um


objeto S3 sem especificar o bucket. Para criar um objeto S3 dessa
maneira, o bucket precisa ser especificado posteriormente ao executar
ações no objeto, por exemplo:

import boto3

# Define o nome do bucket e o caminho do arquivo que será excluído


bucket_name = 'nome-do-seu-bucket'
file_path = 'caminho/para/o/arquivo/que/sera/deletado/arquivo.txt'

# Cria uma conexão com o Amazon S3


s3 = boto3.resource('s3')

# Obtém a referência para o objeto do arquivo que será excluído


obj = s3.Object(file_path)

# Exclui o arquivo especificando o bucket


obj.delete(Bucket=bucket_name)

Ao chamar s3.Object(file_path), você está criando uma referência a um


objeto genérico do S3 que não possui informações sobre o bucket em
que ele se encontra. Portanto, quando você executa uma ação no
objeto, como obj.delete(), é necessário especificar o bucket em que o
objeto está localizado, senão ocorrerá um erro.

Por outro lado, quando você chama s3.Object(bucket_name, file_path),


está criando uma referência ao objeto S3 específico que está
localizado no bucket bucket_name, tornando desnecessário especificar
o bucket em ações posteriores.

Você também pode gostar