ECS: Kontrola existence objektu S3

Zusammenfassung: Jak zkontrolovat existenci objektu v s3.

Dieser Artikel gilt für Dieser Artikel gilt nicht für Dieser Artikel ist nicht an ein bestimmtes Produkt gebunden. In diesem Artikel werden nicht alle Produktversionen aufgeführt.

Weisungen

Použití HEAD k efektivnější kontrole existence objektu.

Výpis objektů je ze své podstaty neefektivní způsob kontroly existence konkrétního objektu. Vyhledávání v indexu je pro tento konkrétní požadavek nejen relativně pomalé, ale může mít také vliv na celkové zatížení a výkon.

Požadavek na konkrétní objekt je vždy efektivnější než požadavek na jeden nebo více objektů, které odpovídají parametrům. Výpis objektů je forma vyhledávání, kde je nutné dotazovat distribuované indexy.

Použití HEAD na objekt je nejlepší metodou, jak zkontrolovat, zda existuje. U sady ECS Object SDK se to provádí pomocí GetObjectMetadataRequest.

 
Pokud objekt neexistuje, sada SDK vyvolá následující výjimku kvůli chybové odpovědi 404:

 

Exception in thread "main" com.emc.object.s3.S3Exception: Not Found

 



Tady je příklad použití GetObjectMetadataRequest , který se používá v getObjectMetadata klientské metodě:

try { GetObjectMetadataRequest gom = new GetObjectMetadataRequest(<bucket>, <key>); S3ObjectMetadata om = s3.getObjectMetadata(gom); System.out.println("etag: " + om.getETag()); System.out.println("last modified: " + om.getLastModified().toString()); } catch(com.emc.object.s3.S3Exception e) { System.out.println("What happened: " + e.getMessage()); }

  
Pokud používáte sadu AWS Java SDK a objekt neexistuje, sada SDK vyvolá následující výjimku. 

com.amazonaws.services.s3.model.AmazonS3Exception: Not Found

 
Zde je příklad:

try { GetObjectMetadataRequest gom = new GetObjectMetadataRequest(AWSS3Factory.S3_BUCKET, key); s3.getObjectMetadata(gom); } catch(com.amazonaws.services.s3.model.AmazonS3Exception e) { System.out.println("What happened: " + e.getMessage()); }

 Zkontrolujte, zda objekt existuje, a zjistěte, zda je potřeba putObject.

Pokud kontrolujete existenci objektu, abyste zjistili, zda je potřeba putObject, zvažte použití podmíněných metod PutObjectRequests:
 

withIfMatch() and withIfNoneMatch().

Obě tyto metody potřebují hodnotu object etag a používají hlavičky "if-match","if-none-match" v požadavku PUT.
Existují také metody withIfUnmodifiedSince() a withIfModifiedSince(), z nichž každá přebírá objekt Date.

Pokud značka etag nebo md5 nejsou k dispozici, je potřeba ji načíst pomocí GetObjectMetadataRequest.
Efektivní alternativou by bylo použít withIfUnmodifiedSince(), pokud je datum dostatečně staré. 

Servisní služby s technickou podporou ECS

Pokud máte obavy ohledně existence objektu, otevřete servisní požadavek u týmu podpory ECS.
 

Betroffene Produkte

Elastic Cloud Storage

Produkte

Elastic Cloud Storage
Artikeleigenschaften
Artikelnummer: 000014759
Artikeltyp: How To
Zuletzt geändert: 22 Mai 2025
Version:  4
Antworten auf Ihre Fragen erhalten Sie von anderen Dell NutzerInnen
Support Services
Prüfen Sie, ob Ihr Gerät durch Support Services abgedeckt ist.