Я создал приложение в Yii2. Я хочу предоставить функциональность пользователю с правами администратора для загрузки файлов из панели администратора, и эти файлы будут загружены в корзину s3. Мое ведро - частное, не опубликованное c. Пользователи с правами администратора могут загружать эти изображения и видеофайлы в корзину, конечный пользователь может получить эти файлы из приложения android. Я не могу загрузить файлы в корзину. Я получил сообщение об ошибке типа S3 :: putObject (): [InvalidRequest] Предоставленный вами механизм авторизации не поддерживается. Пожалуйста, используйте AWS4-HMA C -SHA256.
Мой код указан ниже
public static function uploadToS3($fileTempName, $newfilename, $metaHeaders = array(), $contentType = null) {
// create AWS object for file upload
$s3 = new S3(Helpers::yiiparam('s3_access_key'), Helpers::yiiparam('s3_secret_access_key'));
// connect AWS bucket
if($s3->putObjectFile($fileTempName, Helpers::yiiparam('s3_bucket_name') , $newfilename, S3::ACL_PUBLIC_READ)){
$msg = "S3 Upload Successful.";
$s3file='http://'.Helpers::yiiparam('s3_bucket_name').'.s3.amazonaws.com/'.$newfilename;
echo "<img src='$s3file'/>";
echo 'S3 File URL:'.$s3file;
}else{
echo 'msg='.$msg = "S3 Upload Fail.";
exit;
}
exit;
}
s3 class php Код файла
public static function putObjectFile($file, $bucket, $uri, $acl = self::ACL_PRIVATE, $metaHeaders = array(), $contentType = null) {
return self::putObject(S3::inputFile($file), $bucket, $uri, $acl, $metaHeaders, $contentType);
}
Можете ли вы предоставить решение для решения этой проблемы?