Vérifiez la taille du fichier sur le S3 sans téléchargement?
J'ai la clientèle des fichiers téléchargés vers Amazon S3, et je voudrais ajouter une fonctionnalité à compter de la taille de ces fichiers pour chaque client. Est-il un moyen de "coup d'oeil" dans la taille du fichier sans les télécharger? Je sais que vous pouvez consulter à partir de l'Amazonie panneau de configuration mais j'ai besoin de faire pro grammaticalement.
- Avez-vous essayé une requête HEAD au lieu d'un?
- Pourriez-vous poster ce que votre
HEAD request
était, s'il vous plaît? J'ai également essayé de le faire et je suis pas sûr de la façon de le faire
Vous devez vous connecter pour publier un commentaire.
Envoyer un HTTP TÊTE demande à l'objet. Une requête HEAD permettra de récupérer les mêmes en-têtes HTTP, comme une requête GET, mais il ne va pas récupérer le corps de l'objet (vous permet d'économiser de la bande passante). Vous pouvez ensuite analyser le Contenu de l'en-tête de Longueur de la valeur de l'en-tête HTTP.
Node.js un:
Doc est ici.
L'aide de Michael conseils, mon réussie code ressemble à ceci:
Je fais quelque chose comme ça en Python pour obtenir la taille cumulée de tous les fichiers dans le cadre d'un préfixe:
Vous pouvez également faire une liste du contenu du seau. Les métadonnées dans la liste contient les tailles de fichier de tous les objets. C'est la façon dont il est mis en œuvre dans le SDK AWS pour PHP.
Android Solution
Intégrer sdk aws et vous obtenez à peu près tout droit avant la solution:
Il y a une meilleure solution.
SDK AWS pour .NET
---- ListObjectsRequest & ListObjectsResponse
Code PHP pour vérifier s3 taille de l'objet (ou tout autre objet en-têtes), notez l'utilisation stream_context_set_default pour s'assurer qu'il n'en utilise qu'une requête HEAD
Le code python suivant sera de fournir la taille de top 1000 des fichiers d'impression individuellement à partir de s3:
JS:
C'est une solution pour celui qui est à l'aide de Java et le S3 bibliothèque java fournie par Amazon. Si vous utilisez
com.amazonaws.services.s3.AmazonS3
vous pouvez utiliser unGetObjectMetadataRequest
demande qui vous permet d'interroger l'objet de la longueur.Les bibliothèques que vous avez à utiliser sont:
Importations:
Et le code dont vous avez besoin pour obtenir la longueur du contenu:
Avant d'exécuter le code ci-dessus, vous aurez besoin de construire la S3 client. Voici un exemple de code pour que:
Vous pouvez simplement utiliser la
s3 ls
commande:Sorties
Référence: https://docs.aws.amazon.com/cli/latest/reference/s3/ls.html