Ich versuche, Dateien in meinen Bucket hochzuladen, indem ich einen Code wie diesen verwende:
$s3 = new AmazonS3();
$bucket = 'host.domain.ext'; // Der Name meines Buckets entspricht dem CNAME meines Hosts
// Öffnen einer Datei-Ressource
$file_resource = fopen('picture.jpg', 'r');
// Datei hochladen
$response = $s3->create_object($bucket, 'picture.jpg', array(
'fileUpload' => $file_resource,
'acl' => AmazonS3::ACL_PUBLIC,
'headers' => array(
'Cache-Control' => 'public, max-age=86400',
),
));
Aber ich erhalte den Fehler "NoSuchBucket". Das Seltsame ist, dass wenn ich mein S3-Konto abfrage, um die Liste der Buckets abzurufen, erhalte ich genau den gleichen Namen, den ich für den Upload verwende host.domain.ext.
Ich habe versucht, einen anderen Bucket ohne Punkte im Namen zu erstellen, und es funktioniert einwandfrei... ja, mein Problem ist der Name meines Buckets, aber ich muss die FQDN-Konvention beibehalten, um ihn als statischen Dateiserver im Internet zu verknüpfen. Weiß jemand, ob es ein Escaping gibt, das ich mit meinem Bucket-Namen machen kann, bevor ich ihn an die API sende, um den Punkt-Crash zu verhindern? Ich habe bereits reguläre Ausdrücke ausprobiert und das gleiche Ergebnis erhalten.
0 Stimmen
Versuche
host.domain.ext.s3.amazonaws.com
?0 Stimmen
Leider funktioniert das auch nicht. Es scheint, dass das PHP SDK keine Punkte mag. Ich habe versucht, einen anderen Bucket-Namen ohne Punkte zu erstellen und der Code funktioniert einwandfrei, aber wie gesagt, ich benötige die FQDN, um ihn als öffentlichen Server im Internet zu verknüpfen.