Actuellement, je fais un GetObjectMetaDataRequest
, si le GetObjectMetaDataResponse
jeter une exception signifie que l'objet n'existe pas. Existe-t-il un meilleur moyen de vérifier si le fichier existe sans télécharger le fichier.Quelle est la meilleure façon de vérifier si un objet S3 existe?
Répondre
Oui.
Vous pouvez utiliser une ListObjectsRequest. Utilisez la propriété Marqueur et récupérez seulement 1 élément.
Il n'y a pas de ListObjectRequest, mais une ListObjectsRequest dans laquelle vous ne pouvez pas spécifier la clé. Vous devez ensuite parcourir tous les objets pour trouver celui que vous voulez. Je suis actuellement en train d'y jeter un coup d'œil car il me semble que des erreurs de temporisation sont survenues lors du téléchargement du fichier. (Si quelqu'un a une idée de comment résoudre cela, n'hésitez pas à commenter).
Vous pouvez essayer la demande de listes de pièces si vous connaissez l'identifiant de téléchargement.
À part ça, je n'en ai aucune idée. Voudrait avoir une conversation avec la personne qui a écrit l'api S3 ...
vous pouvez utiliser la classe S3FileInfo et Exists méthode de cette classe, il vous aidera à vérifier si le fichier existe sans télécharger le fichier. Voir l'exemple ci-dessous J'ai utilisé le AWSSDK 3.1.6 .net (3.5):
public static bool ExistsFile()
{
BasicAWSCredentials basicCredentials = new BasicAWSCredentials("my access key", "my secretkey");
AmazonS3Config configurationClient = new AmazonS3Config();
configurationClient.RegionEndpoint = RegionEndpoint.EUCentral1;
try
{
using (AmazonS3Client clientConnection = new AmazonS3Client(basicCredentials, configurationClient))
{
S3FileInfo file = new S3FileInfo(clientConnection, "mybucket", "FolderNameUniTest680/FileNameUnitTest680");
return file.Exists;//if the file exists return true, in other case false
}
}
catch(Exception ex)
{
return false;
}
}
Essayez cette solution, cela fonctionne pour moi.
AmazonS3Client client = new AmazonS3Client(accessKey, secretKey, regionEndpoint);
S3FileInfo s3FileInfo = new S3FileInfo(client, bucketName, fileName);
if (s3FileInfo.Exists)
return true;
else
return false;
Vous allez probablement devoir utiliser le reste vous API, comme la méthode proposée, ne interne exactement la même chose (try ... catch à la demande)
- 1. La meilleure façon de vérifier si un objet PowerShell existe?
- 2. Quelle est la meilleure façon de vérifier si un dossier de site Web existe?
- 3. Dans ActionScript, quelle est la meilleure façon de vérifier si une propriété de noeud xml existe?
- 4. LINQtoSQL: Quelle est la meilleure façon de vérifier si une ligne existe sur insert?
- 5. Quelle est la meilleure façon de détecter si un objet Javascript donné est un élément DOM?
- 6. Quelle est la bonne façon de tester si un objet est un objet jQuery en javascript?
- 7. La meilleure façon de vérifier si une URL est valide
- 8. Comment vérifier si un objet existe dans un NSMutableArray
- 9. Quelle est la meilleure façon d'organiser le code orienté objet?
- 10. Quelle est la meilleure façon de vérifier si le code C a déprécié les appels POSIX?
- 11. meilleure façon de vérifier la classe
- 12. Quelle est la meilleure façon d'implémenter hashCode()?
- 13. Meilleure façon de vérifier si une connexion TCP est active
- 14. Quelle est la meilleure façon de charger la balance? PHP
- 15. Quelle est la meilleure façon d'exécuter `sum_by_sql`?
- 16. Quelle est la meilleure façon d'arrêter un thread dans Java?
- 17. Quelle est la meilleure façon de déterminer si une table temporaire existe dans SQL Server?
- 18. La meilleure façon de vérifier si un tableau de caractères est vide
- 19. Quelle est la meilleure façon de détecter si un serveur proxy est disponible?
- 20. Comment vérifier si un objet est défini?
- 21. Quelle est la meilleure façon de déterminer si un System.DateTime est minuit?
- 22. Quelle est la meilleure façon de vérifier un ListView pour les éléments cochés en C#?
- 23. La meilleure façon de vérifier si System.Type est un descendant d'une classe donnée
- 24. Comment vérifier si un chemin réseau existe?
- 25. Quelle est la meilleure façon de chiffrer un clob?
- 26. La meilleure façon de gérer un godet S3?
- 27. quelle est la bonne façon de valider si un objet existe dans une vue django sans retourner 404?
- 28. Quelle est la meilleure façon de stocker un objet ActiveRecord dans memcached?
- 29. Quelle est la meilleure façon de vérifier l'infini dans un module Perl?
- 30. Quelle est la meilleure façon de déterminer si un horodatage correspond aux heures d'ouverture saisonnières?
C'est une faute de frappe. J'ai également mis à jour ma réponse pour donner un peu plus de détails sur la façon de l'atteindre. –