J'ai vu des questions précédentes sur "Comment trouver la taille d'un godet S3 entier". C'est quelque peu une question différente - donc je m'excuse à l'avance si c'est vague. Je ferai de mon mieux pour expliquer ce que j'essaie d'atteindre. P>
J'utilise actuellement Classe PHP Amazon S3 . P>
C'est ce que j'essaie d'atteindre: p>
J'aimerais pouvoir boucler sur ma base de données MySQL et obtenir des noms de fichiers spécifiques sur mon serveur S3. (Cela peut être basé sur l'utilisateur). P> li>
Pendant la boucle, interrogez le godet Amazon S3 (en quelque sorte) et obtenez le fichier de fichiers de chaque fichier dans ma boucle MySQL. p> li>
Ajoutez tous les fichiers, pour obtenir un total approximatif de bytésize. p> li> ol>
Donc, essentiellement, disons que j'ai un utilisateur qui dispose de 5 fichiers sur le godet S3. Comment puis-je pouvoir interroger le godet S3, pour voir la quantité de données que les 5 fichiers de cet utilisateur stockent dans mon godet? P>
Mes excuses si cela est difficile à comprendre. Je peux ré-articuler, si nécessaire. p>
Toute nudge dans la bonne direction serait grandement appréciée. P>
5 Réponses :
Vous devez vraiment stocker la variation de votre table MySQL. Plus rapide pour obtenir l'info, moins de coût S3.
Mais ... Essayez ceci? P>
$s3 = new Aws\S3\S3Client($parameters); $obj_data = $s3->headObject([ 'Bucket' => $bucket, 'Key' => $key ]); echo 'Size is: '.$obj_data['ContentLength'];
UPVOTE pour "Vous devez vraiment stocker le fichier de fichiers dans votre table MySQL"
Il n'y a pas de méthode code> getobjectinfo code> dans PHP AWS SDK. docs.aws.amazon. COM / AWS-SDK-PHP / V2 / API / ... docs.aws.amazon.com/aws-sdk-php/v3/aplia/...
Maintenant que AWS a publié un support PHP SDK, vous voudrez peut-être envisager d'examiner la commutation pour utiliser: http: // aws. Amazon.com/sdkforphp/ . P>
Il inclut également l'API pour obtenir une taille d'objet: get_Object_filesize (). P>
Je suis d'accord avec John Ventimiglia. Chaque appel à S3 prend du temps et coûte de l'argent. Si vous pouvez stocker les informations localement, il fournira une meilleure expérience client (plus rapide) et sera moins chère. P>
Je n'étais pas au courant du SDK AWS PHP. Je vais devoir jouer avec ça. Vous avez tous deux raison de stocker les informations. Je suis en train de stocker localement les fichiers. Merci beaucoup.
Je stocke dans mon mySQL mais vous devez nettoyer et il est bon de connaître toute inadéquation entre votre MSYQL et S3. Lorsque j'ai besoin d'obtenir la taille du fichier, je liste tous les fichiers et comptez la taille du fichier
Ajout à ChrisjmCcreadie Réponse.
La méthode list_Objects ('') code>
est paginé qui peut ne pas fournir plus de résultats que 1000, comme la valeur par défaut est de 1000, vous devrez donc passer par la pagination pour des résultats précis complets. P>
Mais vous pouvez utiliser < Code> get_Object_list () code> méthode qui retournera inclure ("sdk.class.php"); p> touches max code> résultat. p>
En 2015, je dois utiliser http://docs.aws.amazon.com/aws-sdk-php/v2/guide/feature-s3-stream-wrapper.html pour ce et ensuite p> J'espère que cela aidera à quelqu'un. p> p>