ECS: S3-objektin olemassaolon tarkistaminen

Summary: Kuinka tarkistaa objektin olemassaolo s3: ssa.

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Instructions

HEADin käyttäminen objektin olemassaolon tehokkaampaan tarkistamiseen.

Objektien luettelointi on luonnostaan tehoton tapa tarkistaa tietyn kohteen olemassaolo. Hakemistohaku ei ole vain suhteellisen hidas tälle nimenomaiselle pyynnölle, vaan se voi myös vaikuttaa kokonaiskuormitukseen ja suorituskykyyn.

Tietyn objektin pyytäminen on aina tehokkaampaa kuin yhden tai useamman parametreja vastaavan objektin pyytäminen. Objektilistaus on hakumuoto, jossa hajautetuista indekseistä on tehtävä kysely.

HEAD: n käyttäminen objektissa on paras tapa tarkistaa, että se on olemassa. ECS-objekti-SDK:ssa tämä tehdään GetObjectMetadataRequest-pyynnöllä.

 
Jos objektia EI ole, SDK heittää seuraavan poikkeuksen 404-virhevastauksen vuoksi:

 

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

 



Tässä on esimerkki getObjectMetadataRequest-pyynnön käyttämisestä getObjectMetadata-asiakasmenetelmässä:

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()); }

  
Jos käytät AWS java SDK:ta eikä objektia ole olemassa, SDK heittää seuraavan poikkeuksen. 

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

 
Tässä on esimerkki siitä:

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()); }

 Tarkista, onko objekti olemassa, jotta voit määrittää, tarvitaanko putObject-kohdetta.

Jos tarkistat objektin olemassaolon selvittääksesi, tarvitaanko putObject-objektia, harkitse PutObjectRequests-ehdollisten menetelmien käyttämistä:
 

withIfMatch() and withIfNoneMatch().

Molemmat menetelmät tarvitsevat objektin etag-arvon, ja ne käyttävät otsikoita "if-match","if-none-match" PUT-pyynnössä.
On myös menetelmiä withIfUnmodifiedSince() ja withIfModifiedSince(), joista jokainen ottaa päivämääräobjektin.

Jos etag tai md5 ei ole käytettävissä, se on haettava GetObjectMetadataRequest-pyynnöllä.
Tehokas vaihtoehto olisi käyttää withIfUnmodifiedSince()-tiedostoa, jos päivämäärä oli tarpeeksi vanha. 

SR ECS:n teknisellä tuella

Jos olet huolissasi objektin olemassaolosta, tee palvelupyyntö ECS-tukitiimille.
 

Affected Products

Elastic Cloud Storage

Products

Elastic Cloud Storage
Article Properties
Article Number: 000014759
Article Type: How To
Last Modified: 22 May 2025
Version:  4
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.