Ошибка 60 сертификата выдачи SSL и ошибка при выполнении «PutObject» - PullRequest
1 голос
/ 19 марта 2019

Я пытаюсь отправить файл .txt в s3bucket в AWS, но всякий раз, когда я запускаю свой код с помощью mamp, я получаю следующую ошибку:

Ошибка: ошибка при выполнении «PutObject» для «https://dynamics -bucket-qa.s3.eu-west-2.amazonaws.com / folder / Test.txt »; Ошибка HTTP AWS: ошибка cURL 60: проблема с сертификатом SSL: невозможно получить сертификат локального эмитента (см. http://curl.haxx.se/libcurl/c/libcurl-errors.html)

Я поместил файл cacert.pem, который я скачал из Интернета, в папку extra/ssl в MAMP, и я также обновил файл php.ini этим curl.cainfo = "C:\MAMP\bin\php\php7.2.10\extras\ssl\cacert.pem"

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

Я использую PHP версии 7.2.10

<?php

// Run:$ composer require aws/aws-sdk-php
require '../vendor/autoload.php';


use Aws\AwsClient;
use Aws\Exception\AwsException;

// AWS Info
$bucketName = 'dynamics-bucket-qa';
$IAM_KEY = 'XXXXXXXXXXXXXXXXXXXXXXX';
$IAM_SECRET = 'XXXXXXXXXXXXXXXX';
// Connect to AWS
try {
    // You may need to change the region. It will say in the URL when the bucket is open
    // and on creation.
    $s3 = Aws\S3\S3Client::factory(
        array(
            'credentials' => array(
                'key' => $IAM_KEY,
                'secret' => $IAM_SECRET
            ),
            'version' => 'latest',
            'region'  => 'eu-west-2'
        )
    );
} catch (Exception $e) {

    die("Error: " . $e->getMessage());
}

// For this, I would generate a unqiue random string for the key name. But you can do whatever.
$keyName = 'folder/' . basename($_FILES["fileToUpload"]['name']);
$pathInS3 = 'https://s3.eu-west-2.amazonaws.com/' . $bucketName . '/' . $keyName;
// Add it to S3
try {
    // Uploaded:
    $file = $_FILES["fileToUpload"]['tmp_name'];
    $s3->putObject(
        array(
            'Bucket'=>$bucketName,
            'Key' =>  $keyName,
            'SourceFile' => $file,
            'StorageClass' => 'REDUCED_REDUNDANCY'
        )
    );
} catch (S3Exception $e) {
    die('Error:' . $e->getMessage());
} catch (Exception $e) {
    die('Error:' . $e->getMessage());
}
echo 'Done';

//htdocs composer -v 
?>
...