2017-10-21 212 views
0

J'utilise cette classe pour générer un formulaire de téléchargement direct qui inclut la partie de politique.php s3 pré-signé url sans sdk

https://www.designedbyaturtle.co.uk/2015/direct-upload-to-s3-using-aws-signature-v4-php/

Les ajouts travaillent, mais je veux être en mesure d'afficher le fichier à partir de l'URL pour les utilisateurs sur le site sans les fichiers publics. Je comprends le SDK a une méthode simple pour cela mais j'espère que je peux le faire avec le code existant car cela crée déjà la politique. Je me demande quelles sont les étapes pour créer cette URL à partir de zéro? Il semble excessif d'inclure tout le SDK gonflé pour une seule fonction.

+1

Je dirais que vous voudriez commencer à http://docs.aws.amazon.com/AmazonS3/ latest/API/Welcome.html et localisez l'API REST sur la façon de créer une URL signée. Tandis que votre ballottement de taille de SDK pourrait être un souci, son chargement automatique est fantastique et l'impact de mémoire devrait être bas. – Scuzzy

+0

La * police * signée pour les envois directs est entièrement différente de la * requête canonique * signée pour les URL pré-signées. Cependant, il y a un code utile dans cet exemple pour construire la clé de signature ... donc c'est un début utile. –

Répondre

0

La création d'une URL pré-signée S3 est en fait très simple pour les requêtes GET. PUT est assez facile, mais POST est compliqué et nécessite une politique.

Le défi consiste à créer le code de signature. Amazon prend en charge deux versions v2 et v4. La version 2 est en cours de suppression. v4 est un peu compliqué à coder.

Si vous ne créez que des URL pré-signées pour les requêtes GET, écrivez votre propre code. Pour toute autre chose, je recommande sérieusement d'utiliser le SDK. Voici un lien vers le code source pour pré-signer une URL S3 utilisant S3V4 en utilisant PHP sans AWS SDK.

S3LINK-V4.PHP

+0

Je l'ai résolu en utilisant certaines fonctions et en faisant une classe légère, l'API est vraiment gonflée. – xmxmxmx

+0

J'accepte votre réponse parce que vous avez dérangé. J'ai effectivement utilisé un code modifié en fonction de celui que vous venez de publier, donc vous avez raison, merci. – xmxmxmx