Борьба с многочастной загрузкой s3 для Eventbrite

Я пытаюсь загрузить на s3 на основе документации в Eventbrite, но я не получаю. Я думаю, что это связано со структурой моего запроса, но я пробовал несколько разных вещей, и ничего на самом деле не работает, и я получаю ‘Bucket POST должен содержать поле с именем’ key ‘error.

Инструкции здесь, так что он предоставляет вам предопределенный объект POST, но я не могу понять, как затем предоставить эти детали в Guzzle
https://www.eventbrite.com/developer/v3/resources/uploads/

Я бы использовал s3client, но я не думаю, что он подходит, так как у меня нет названия региона.

Так что это массив обратно из EB, как указано в документации

$postFields = [
'key' => $post_args['key'],
'AWSAccessKeyId' => $post_args['AWSAccessKeyId'],
'bucket' => $post_args['bucket'],
'acl' => $post_args['acl'],
'signature' => $post_args['signature'],
'policy' => $post_args['policy'],
];

и я пробовал различные структуры:

$args = [
'query' => $postFields,
'multipart' => [
[
'name' => $instructions_response['body']['file_parameter_name'],
'Content-type' => 'multipart/form-data',
'contents' => $image,
]
],
]

Или же

$args = [
'multipart' => [
[
'key' => $post_args['key'],
'AWSAccessKeyId' => $post_args['AWSAccessKeyId'],
'bucket' => $post_args['bucket'],
'acl' => $post_args['acl'],
'signature' => $post_args['signature'],
'policy' => $post_args['policy'],
'name' => $instructions_response['body']['file_parameter_name'],
'Content-type' => 'multipart/form-data',
'contents' => $image,
]
],
];

Или же

$args = [
'key' => $post_args['key'],
'AWSAccessKeyId' => $post_args['AWSAccessKeyId'],
'bucket' => $post_args['bucket'],
'acl' => $post_args['acl'],
'signature' => $post_args['signature'],
'policy' => $post_args['policy'],
'multipart' => [
[
'name' => $instructions_response['body']['file_parameter_name'],
'Content-type' => 'multipart/form-data',
'contents' => $image,
]
],
];

(Плюс куча более поддельных, которые я больше не могу вспомнить)

Во всяком случае, я застрял. Я просто не могу представить, как эти POST-данные должны быть структурированы для публикации на S3. Я спустился в кроличью нору с помощью Xdebug, и до сих пор не ясно, что происходит, когда он делает запрос.

Запрос называется так

$upload_response = $this->client->request('POST', $upload_url, $args);

ОБНОВЛЕНИЕ: мне было указано, что, хотя «ключ» в сообщении об ошибке указан строчными буквами, а то, что возвращается из aws, в документации прописывается заглавными буквами. Я изменил его на «Ключ», и теперь я получаю «Конфликтующие параметры строки запроса: acl, policy»

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]