Получение 400 ошибок при каждой попытке загрузить изображение в корзину Amazon Web Services S3
Привет,
Пожалуйста, потерпите меня, так как я новичок в этом.
Я пытаюсь загрузить файлы изображений в корзину Amazon Web Services S3 с помощью клиента NodeJS Knox, но каждый раз получаю ошибку 400. Я думаю, что это может быть проблема с авторизацией, поскольку я не могу найти никаких ошибок в своем коде в NodeJS. Я распечатал объект клиента knox на консоли после того, как он выполнил загрузку, и получил эту часть, не зная, говорит ли он, что AWS не разрешает мне:
агент:
Агент {
домен: ноль,
_events: {free: [Function] },
_eventsCount: 1,
_maxListeners: не определено,
defaultPort: 443,
протокол: "https:",
параметры: {путь: ноль},
Запросы: {},
Розетки:
{'photogridjose.s3.amazonaws.com:443:::::::::' ':
[TLSSocket {
_tlsOptions:
{труба: ноль,
secureContext: SecureContext {context: SecureContext {},
singleUse: true},
isServer: false,
requestCert: true,
* rejectUnauthorized: верно,
сеанс: не определено,
Протоколы NPN: не определены,
ALPN Протоколы: не определено,
requestOCSP: undefined},
_secureEstablished: false,
_securePending: false,
_newSessionPending: false,
_controlReleased: true,
_SNICallback: ноль,
имя_сервера: ноль,
npnProtocol: ноль,
alpnProtocol: ноль,
авторизовано: ложь, *
authorizationError: null,
зашифровано: правда,
_События:
{ близко:
[[Функция],
{[Function: bound OnceWrapper] слушатель: [Function] },
[Функция: onClose] ],
конец:
[{[Function: bound onceWrapper] слушатель: [Function: onend]},
{[Function: bound onceWrapper] слушатель: [Function: onHangUp] } ],
отделка: [Функция: onSocketFinish],
_socketEnd: [Функция: onSocketEnd],
secureConnect: {[Function: bound onceWrapper] слушатель: [Function] },
connect: {[Function: bound onceWrapper] слушатель: [Function] },
безопасный: [Функция],
бесплатно: [Функция: onFree],
agentRemove: [Функция: onRemove]},
_eventsCount: 9,
подключение: правда,
_hadError: false,
_справиться:
TLSWrap {
bytesRead: 0,
_externalStream: [Внешний],
фд: -1,
_parent:
TCP {
bytesRead: 0,
_externalStream: [Внешний],
фд: -1,
чтение: [Getter/Setter],
владелец: [циркуляр],
onread: ноль,
соединение: ноль,
writeQueueSize: 0},
_parentWrap: не определено,
_secureContext: SecureContext {context: SecureContext {},
singleUse: true},
чтение: ложь,
владелец: [циркуляр],
onread: [Функция: onread],
Я использовал AWSAccessKeyId & AWSSecretKey, который мне дал AWS, и изменил политику корзины S3, чтобы она была настроена на чтение / запись для всех.
Это мой политический документ:
{
"Версия": "2012-10-17",
"Id": "Policy150032 *******",
"Утверждение": [
{
"Сид": "Stmt1500 *********",
"Эффект": "Разрешить",
"Принципал": "*",
"Действие": [
"S3: GetObject",
"S3: PutObject",
"*"
],
"Ресурс": "arn: aws: s3::: Myphotogrid / *"
}
]
}
Вот мой документ CORS:
CORSRule>
CORSConfiguration>
Вот журнал S3 Bucket для этой транзакции:
<Ошибка>
<Код>AccessDenied Код>
Error>
Кто-нибудь здесь имеет опыт использования контейнеров AWS S3, которые могут помочь?
1 ответ
Сделал новую корзину S3 и удалил старую, удостоверился, что у общественности есть права на чтение и запись в корзину, и выбрал сервер, ближайший к моему расположению, для его хранения, что решило 400 и более поздние 307 ошибок, которые я получал., Сейчас я получаю 200 успешных ответов, и файлы загружаются в мою корзину S3 без проблем.