Saya telah mencari di web selama lebih dari dua hari sekarang, dan mungkin telah melihat sebagian besar skenario dan solusi yang didokumentasikan secara online, tetapi sejauh ini tidak ada yang berhasil untuk saya.
Saya menggunakan AWS SDK untuk PHP V2.8.7 yang berjalan di PHP 5.3.
Saya mencoba menghubungkan ke bucket S3 saya dengan kode berikut:
// 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();
}
//
File config.php saya adalah sebagai berikut:
<?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'
)
)
)
)
);
Ini menghasilkan kesalahan berikut:
Tanda tangan permintaan yang kami hitung tidak cocok dengan tanda tangan yang Anda berikan. Periksa kunci dan metode penandatanganan Anda.
Saya sudah memeriksa kunci akses dan rahasia saya setidaknya 20 kali, menghasilkan yang baru, menggunakan metode berbeda untuk menyampaikan informasi (yaitu profil dan memasukkan kredensial dalam kode) tetapi tidak ada yang berfungsi saat ini.
secret
tinggi), dan menggunakannya untuk menghitung tanda tangan berdasarkan kunci akses Anda, stempel waktu saat ini, ditambah banyak faktor lainnya. Lihat docs.aws.amazon.com/general/latest/gr/… . Ini adalah longshot, tetapi mengingat bahwa mereka menyertakan stempel waktu, mungkin waktu lingkungan lokal Anda tidak aktif?