지금까지 이틀 넘게 웹에서 검색했으며 온라인 문서화 된 시나리오와 해결 방법의 대부분을 살펴 봤지만 지금까지 아무런 효과가 없었습니다.
저는 PHP 5.3에서 실행되는 PHP V2.8.7 용 AWS SDK 를 사용하고 있습니다.
다음 코드를 사용하여 S3 버킷에 연결하려고합니다.
// Create a `Aws` object using a configuration file
$aws = Aws::factory('config.php');
// Get the client from the service locator by namespace
$s3Client = $aws->get('s3');
$bucket = "xxx";
$keyname = "xxx";
try {
$result = $s3Client->putObject(array(
'Bucket' => $bucket,
'Key' => $keyname,
'Body' => 'Hello World!'
));
$file_error = false;
} catch (Exception $e) {
$file_error = true;
echo $e->getMessage();
die();
}
//
내 config.php 파일은 다음과 같습니다.
<?php
return array(
// Bootstrap the configuration file with AWS specific features
'includes' => array('_aws'),
'services' => array(
// All AWS clients extend from 'default_settings'. Here we are
// overriding 'default_settings' with our default credentials and
// providing a default region setting.
'default_settings' => array(
'params' => array(
'credentials' => array(
'key' => 'key',
'secret' => 'secret'
)
)
)
)
);
다음 오류가 발생합니다.
계산 한 요청 서명이 제공 한 서명과 일치하지 않습니다. 키 및 서명 방법을 확인하십시오.
이미 내 액세스 키와 암호를 20 번 이상 확인하고 새 암호를 생성하고 다른 방법을 사용하여 정보 (예 : 프로필 및 코드에 자격 증명 포함)를 전달했지만 현재 아무 것도 작동하지 않습니다.
secret
이상)를 가져 와서 이를 사용하여 액세스 키, 현재 타임 스탬프 및 기타 여러 요소를 기반으로 서명을 계산합니다. docs.aws.amazon.com/general/latest/gr/…를 참조하십시오 . 롱샷이지만 타임 스탬프가 포함되어 있다는 점을 감안할 때 로컬 환경의 시간이 꺼져 있습니까?