2016-04-26 6 views
1

Derzeit ich die authentifizierten URL bin erzeugt wird, wie:Wie wird ein vordefinierter URL-Abfrageparameter separat erstellt?

$this->s3Client = new S3Client($this->options); 
$cmd = $this->s3Client->getCommand('GetObject', [ 
    'Bucket' => $bucket_name, 
    'Key' => $object_key 
]); 
$request = $this->s3Client->createPresignedRequest($cmd, PRESIGNED_URL_VALIDITY); 
$presignedUrl = (string) $request->getUri(); 

Gibt es eine Weise, die ich meine eigenen die Abfrageparameter in der authentifizierten URL generieren könnte auf einem nicht createPresignedRequest verwenden.

Ich muss separat erstellen:

?X-Amz-Algorithm=AWS4-HMAC-SHA256 
&X-Amz-Credential= 
&X-Amz-Date=20130721T201207Z 
&X-Amz-Expires=86400 
&X-Amz-SignedHeaders=host 
&X-Amz-Signature=<signature-value> 

und die hänge es auf den heißen Stein Dateipfad in die presigned Antrag zu stellen.

+1

In der S3-API-Dokumentation werden alle diese Parameter und ihre Auffüllung im Abschnitt [Authentifizierungsanfragen: Verwenden von Abfrageparametern] (http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4) erläutert -query-string-auth.html). Mit dieser Dokumentation können Sie vordefinierte URLs für S3 erstellen, die keinen SDK-Code verwenden. –

Antwort

0

Es ist mir nicht ganz klar, was Sie meinen, indem Sie "die Abfrageparameter in der authentifizierten URL selbst generieren". AWS verwendet OpenSSL, um Signaturen zu generieren und signierte URLs zu erstellen.

Sie könnten signierte URLs vollständig ohne PHP erstellen, z. in einer Linux-Befehlszeile mit dem Befehl openssl. Überprüfen Sie dies für ein Bash-Beispiel: https://github.com/gdbtek/aws-tools/blob/master/sign_s3_url.bash.

Sie können PHP auch ohne den S3Client verwenden, um signierte URLs mit den Funktionen PHP OpenSSL extension und openssl_* zu generieren.

+0

Können Sie mir ein Beispiel zeigen, wo ich eine URL erstellen könnte, die zum Beispiel "2 Tage" dauert? –

+0

Was möchten Sie erreichen, wenn Sie das PHP SDK S3Client nicht verwenden? – marekful

+0

Ich habe eine 's3 Datei URL'. Ich möchte das in die vordefinierte URL umwandeln. –

Verwandte Themen