Ошибка получения (PermissionError: [WinError 5] Доступ запрещен) при выполнении кода ниже - PullRequest
0 голосов
/ 07 июня 2019
import boto3

_BUCKET_NAME = 'Bucket_Name'
_PREFIX = 'data/'

ACCESS_KEY='*********************'
SECRET_KEY='**************************'

client = boto3.client('s3', aws_access_key_id=ACCESS_KEY,
                            aws_secret_access_key=SECRET_KEY)

def ListFiles(client):
    """List files in specific S3 URL"""
    response = client.list_objects(Bucket=_BUCKET_NAME, Prefix=_PREFIX)
    for content in response.get('Contents', []):
        yield content.get('Key')

file_list = ListFiles(client)
for file in file_list:
client.download_file('Bucket_Name',file,'C:/Users/UserName/Desktop/folder/')

Traceback (последний последний вызов):

Файл "", строка 21, в client.download_file ( 'Bucket_Name', файл 'C: / Users / User / Desktop / папка')

Файл Строка "C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ boto3 \ s3 \ inject.py" 172, в download_file extra_args = ExtraArgs, callback = Callback)

Файл "C: \ ProgramData \ Anaconda3 \ Lib \ сайта-пакеты \ boto3 \ s3 \ transfer.py", строка 307, в файле загрузки future.result ()

Файл "C: \ ProgramData \ Anaconda3 \ Lib \ сайта-пакеты \ s3transfer \ futures.py", строка 106, в результате вернуть self._coordinator.result ()

Файл "C: \ ProgramData \ Anaconda3 \ Lib \ сайта-пакеты \ s3transfer \ futures.py", строка 265, в результате поднять себя. Исключение

Файл Строка "C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ s3transfer \ tasks.py" 126, в звоните вернуть self._execute_main (kwargs)

Файл Строка "C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ s3transfer \ tasks.py" 150, в _execute_main return_value = self._main (** kwargs)

Файл "C: \ ProgramData \ Anaconda3 \ Lib \ сайта-пакеты \ s3transfer \ download.py", строка 603, в _основная osutil.rename_file (fileobj.name, final_filename)

Файл Строка "C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ s3transfer \ utils.py" 271, в переименованном файле переименовать_файл (текущий_файл, новый_файл)

Файл "C: \ ProgramData \ Anaconda3 \ Lib \ сайта-пакеты \ s3transfer \ compat.py", строка 25, в файле rename_file os.remove (new_filename)

PermissionError: [WinError 5] Доступ запрещен: 'C: / Users / User / Desktop / Папка'

1 Ответ

0 голосов
/ 07 июня 2019

Вам не хватает косой черты в конце вашего пути. Python думает, что это файл, а не папка, и выдает ошибку. Заменить последнюю строку

client.download_file('Bucket_Name',file,'C:/Users/UserName/Desktop/folder')

с:

client.download_file('Bucket_Name',file,'C:/Users/UserName/Desktop/folder/')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...