İki günden fazla bir süredir web'de arama yaptım ve muhtemelen çevrimiçi belgelenmiş senaryoların ve çözümlerin çoğunu inceledim, ancak şimdiye kadar hiçbir şey benim için işe yaramadı.
Ben duyuyorum AWS SDK PHP V2.8.7 PHP 5.3 üzerinde çalışan için.
S3 klasörüme aşağıdaki kodla bağlanmaya çalışıyorum:
// 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 dosyam aşağıdaki gibidir:
<?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'
)
)
)
)
);
Aşağıdaki hatayı üretiyor:
Hesapladığımız istek imzası, sağladığınız imzayla eşleşmiyor. Anahtarınızı ve imzalama yönteminizi kontrol edin.
Erişim anahtarımı ve sırrımı en az 20 kez kontrol ettim, yenilerini oluşturdum, bilgileri aktarmak için farklı yöntemler kullandım (yani profil ve kodda kimlik bilgileri dahil) ancak şu anda hiçbir şey çalışmıyor.
secret
üstünü) alır ve bunu erişim anahtarınıza, geçerli zaman damgasına ve bir dizi başka faktöre göre bir imza hesaplamak için kullanır. Docs.aws.amazon.com/general/latest/gr/… adresine bakın . Bu uzun bir görüntü, ancak zaman damgasını içerdikleri göz önüne alındığında, belki de yerel ortamınızın zamanı kapalı?