Публикация данных формы в корзину Amazon S3

Я потратил три дня, пытаясь настроить простую форму публикации на amazon s3. Каждый раз, когда я получаю эту ошибку:

SignatureDoesNotMatchПодпись запроса, которую мы рассчитали, не соответствует предоставленной вами подписи. Проверьте свой ключ и метод подписи.

Не вижу проблемы. :-(

 'queue/1_1_1234567890.wmv',
            'AWSAccessKeyId'            => 'mypublickeyishere',
            'acl'                       => 'public-read',
            'success_action_redirect'   => 'http://someurl.com',
        );

        $form['policy'] = '{
            "expiration": "2015-12-01T12:00:00.000Z",
                "conditions": [
                    {
                        "acl": "'.$form['acl'].'"
                    },
                    {
                        "success_action_redirect": "'.$form['success_action_redirect'].'"
                    },
                    {
                        "bucket": "thenameofmybucket"
                    },
                    [
                        "starts-with",
                        "$key",
                        "queue/"
                    ]
                ]
            }';

    $form['policy_encoded'] = base64_encode($form['policy']);
    $form['signature'] = base64_encode(hash_hmac( 'sha1', base64_encode(utf8_encode($form['policy'])), 'F90mc5kpjuNMPg8XG7iV6bxOzacYhktcw+RVGzpZ'));

?>


File to upload to S3:

Я заменил имя корзины, а также закрытый и открытый ключи выше.

Я следовал инструкциям, чтобы тщательно подписать политику: http://docs.amazonwebservices.com/AmazonS3/2006-03-01/dev/HTTPPOSTForms.html#HTTPPOSTConstructPolicy

Что я упустил? Почему код не работает?

5
задан reggie 27 May 2012 в 13:33
поделиться