ich Dateien von PHP Upload bucket.its bis s3 Upload erfolgreich, aber wenn ich Bild abrufen erhalte ich folgende Fehlerprivaten s3 Eimer Zugriff auf Dateien
<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<Expires>2006-03-09T07:25:20Z</Expires>
<ServerTime>2016-11-05T04:38:24Z</ServerTime>
wenn ich öffentlich gesetzt, wenn Dateien dann das Hochladen ich es abrufen kann, aber Ich wollte vor unberechtigten Benutzern schützen.
Upload-Datei Code
try{
$s3 = \Storage::disk('s3');
$filePath = $file->getClientOriginalName();
$s3->put($filePath, file_get_contents($val), 'private');
} catch (Aws\Exception\S3Exception $e) {
echo "There was an error uploading the file.\n"+$e;
}
Bevor Frage zu stellen i viele Websites jemals haben, aber es hat nicht geholfen, mir
PHP Amazon S3 access private files through URL
How to access Amazon s3 private bucket object through Zend_Service_Amazon_S3
Dritte Verbindung funktioniert für mich, aber
1.ist es sicher, Zugangsschlüssel in URL zu übergeben?
2. ist es möglich, diese Datei für authentifizierte Benutzer anzuzeigen?
public function get_s3_signed_url($bucket, $resource, $AWS_S3_KEY, $AWS_s3_secret_key, $expire_seconds) {
$expires = time()+$expire_seconds;
// S3 Signed URL creation
$string_to_sign = "GET\n\n\n{$expires}\n/".str_replace(".s3.amazonAWS.com","", $bucket)."/$resource";
$signature = urlencode(base64_encode((hash_hmac("sha1", utf8_encode($string_to_sign), $AWS_s3_secret_key, TRUE))));
$authentication_params = "AWSAccessKeyId=".$AWS_S3_KEY;
$authentication_params.= "&Expires={$expires}";
$authentication_params.= "&Signature={$signature}";
return $link = "http://s3.amazonAWS.com/{$bucket}/{$resource}?{$authentication_params}";
}
Also, sagen Sie, dass der Upload funktioniert gut, aber Sie sind nicht in der Lage das Objekt zuzugreifen danach? Welche Anmeldeinformationen verwenden Sie, um auf das hochgeladene Objekt zuzugreifen? Haben sie die Erlaubnis, Objekte aus dem Bucket zu lesen? Oh, und ja, es ist vollkommen in Ordnung, eine vorzeichenbehaftete URL zu verwenden - obwohl es den Zugriffsschlüssel zeigt, ist dies ein akzeptables öffentliches Wissen, da die Signatur basierend auf dem geheimen Schlüssel und einem Hash-Algorithmus generiert wird. –
@ JohnRotenstein.using get_s3_signed_url Methode Ich kann auf Dateien zugreifen, aber Problem ist ich Zugriffsschlüssel ist sichtbar für die Öffentlichkeit und vor Ablaufdatum url un authentifizierte Benutzer können dieses Bild oder Datei zu sehen.Wie Sie sagten, der Zugangsschlüssel ist okay.was über authentifizierten Benutzer – iCoders
@JohnRotenstein Vielen Dank für die Info. Jetzt habe ich nur Problem mit dem authentifizierten Benutzer – iCoders