Я пытаюсь загрузить объект на S3 с помощью предоставленного клиентом ключа шифрования. http://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.htmlAmazon S3 Клиент предоставил шифрование с помощью PHP SDK
Мой код выглядит следующим образом:
$this->s3->putObject(array(
'Bucket' => $this->bucket,
'Key' => "$filename",
'Body' => $resource,
'ACL' => 'private',
'SSECustomerAlgorithm' => 'AES256',
'SSECustomerKey' => base64_encode('48wk86271sDb23pY23zT5rZJ7q55R7eE'),
'SSECustomerKeyMD5'=> base64_encode(md5('48wk86271sDb23pY23zT5rZJ7q55R7eE'))
));
Ошибка я получаю говорит AWS Error Message: The calculated MD5 hash of the key did not match the hash that was provided
Что я делаю неправильно? Мой ключ 48wk86271sDb23pY23zT5rZJ7q55R7eE
имеет 256 бит. Я также пробовал использовать base64_encode (md5 (key, true)).
Заранее спасибо
Вы говорите, что вы также попробовали md5 (key, true), но вы попробовали base64_encode (md5 (key, true)) ...? –
@ Michael-sqlbot Да, сэр –
Я думаю, что моя проблема в том, что мой ключ на самом деле не 256 бит. Я попытаюсь использовать openssl_random_pseudo_byte для генерации 256 бит, и я подозреваю, что он выведет шестнадцатеричную строку. –