2014-09-17 4 views
2

J'ai installé amazon aws SDK pour php. J'essaye de télécharger un dossier hors du serveur dans le s3 seau. Donc, voici le flux actuel, l'utilisateur télécharge une image, nous l'enregistrons, puis nous exécutons un script de recadrage. Ensuite, nous avons l'image recadrée et prête à être enregistrée sur notre instance ec2. Je veux ensuite transférer ce fichier dans le seau s3 afin que je puisse l'effacer du serveur. Mon problème est que le processus de téléchargement «fonctionne», mais tous les fichiers téléchargés ont une taille de 20 à 50 octets. Voici mon code ci-dessousAmazon S3 Bucket Télécharger tous les fichiers vides

$s3 = App::make('aws')->get('s3'); 
$s3->putObject(array(
'Bucket'  => 'images', 
'ACL'   => 'public-read', 
'Key'  => '/avatars/myImage.jpg', 
'ContentType' => 'image/jpeg', 
'Body' => $imgUrl 
)); 

Cela crée un fichier sur mon seau s3 amazone, du bon type, l'emplacement et les autorisations. Mais le fichier est toujours 20-50bytes alias vide. Une idée de ce qui pourrait en être la cause? $ imgUrl est le chemin d'accès au fichier.

+0

À quoi ressemble le fichier sur le serveur avant le téléchargement? –

+0

Si je vais manuellement au fichier sur le serveur ec2, au moment du téléchargement ou après il semble tout à fait normal, et n'est pas 20-50 octets. – CMOS

+2

Essayez ceci: ** ''Body' => fopen ($ pathToFile, 'r +')' **. De la documentation: 'Passer une chaîne contenant le corps, un handle retourné par fopen, ou un objet Guzzle \ Http \ EntityBodyInterface' – slayedbylucifer

Répondre

4

Essayez ceci: 'Body' => fopen($pathToFile, 'r+')

De l'documentation

Passez une chaîne contenant le corps, une poignée retourné par fopen, ou un Guzzle \ Http \ EntityBodyInterface objet

+0

Vous pouvez voir un exemple de ceci [sur le fichier README du SDK] (https://github.com/aws/aws-sdk-php#upload-a-file-to-amazon-s3) et [dans le Guide de l'utilisateur du SDK ] (http://docs.aws.amazon.com/aws-sdk-php/guide/latest/service-s3.html#uploading-objects). –

Questions connexes