На основании Ответ Марк Б Мне удалось решить аналогичную проблему, которую я пытался неделями ..
Мой скрипт на Python работает без ошибок локально из IDEL на сервере Windows
Однако при вызове веб-клиентом (java-скриптом) выдается ошибка
botocore.exceptions.NoCredentialsError: Unable to locate credentials
Проблема была точно такой же, как указал Марк в отношении домашнего каталога, когда скрипт запускается локально, например, в Windows, это C: \ Users \ USER_NAME, поэтому он может найти учетные данные в расположении по умолчанию C: \ Users \ USER_NAME \ .aws \ credentials as В документации указано , однако при запуске с использованием CGI домашний каталог отличается
Итак, чтобы это исправить:
1 - знать, что ваш домашний каталог (во время выполнения)
from pathlib import Path
разместите эти строки перед попыткой доступа к сервису AWS
home = str(Path.home())
print('Home %s'%home)
скопировать полный домашний путь
2- Перейдите в этот каталог и поместите в него копию каталога .aws.
3 - Дать разрешение на чтение файлов внутри .aws
Для сервера IIS
cd {full_home_path} + \.aws //Remove {} and +
icacls . /grant "NT AUTHORITY\IUSR:(OI)(CI)(R)"
icacls . /grant "Builtin\IIS_IUSRS:(OI)(CI)(R)"
4 - перезагрузить сервер
5 - Попробуйте скрипт Python из веб-клиента
6 - должно работать.