2 Stimmen

Wie kann ich Dateien mit Punkten im Namen in einem S3-Bucket mithilfe des PHP SDK hochladen?

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.

2voto

Anthony Jack Punkte 5051

Ich würde versuchen, Pfadstil-URLs zu verwenden, wie in den Kommentaren in einem verwandten AWS-Forum-Thread vorgeschlagen...

$s3 = new AmazonS3();
$s3->path_style = true;

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X