ECS: S3 Nesnesinin varlığını kontrol etme

Summary: S3 içinde nesne varlığını kontrol etme.

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

Bir nesnenin varlığını daha verimli bir şekilde kontrol etmek için HEAD kullanma.

Nesne listeleme, belirli bir nesnenin varlığını kontrol etmek için doğası gereği verimsiz bir yoldur. Dizin araması yalnızca bu özel istek için nispeten yavaş olmakla kalmaz, aynı zamanda genel yükü ve performansı da etkileyebilir.

Belirli bir nesneyi istemek, parametrelerle eşleşen bir veya daha fazla nesneyi istemekten her zaman daha verimlidir. Nesne listeleme, dağıtılmış dizinlerin sorgulanması gereken bir arama şeklidir.

Nesne üzerinde HEAD kullanmak, nesnenin var olup olmadığını kontrol etmenin en iyi yöntemidir. ECS nesne SDK'sı ile bu GetObjectMetadataRequest ile yapılır.

 
Nesne mevcut değilse, SDK 404 hata yanıtı nedeniyle aşağıdaki özel durumu oluşturur:

 

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

 



getObjectMetadata istemci yönteminde kullanılan GetObjectMetadataRequest kullanımına ilişkin bir örnek aşağıda verilmiştir:

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

  
AWS java SDK'sı kullanılıyorsa ve nesne mevcut değilse SDK aşağıdaki istisnayı oluşturur. 

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

 
İşte buna bir örnek:

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

 putObject gerekip gerekmediğini belirlemek için nesnenin mevcut olup olmadığını kontrol edin.

putObject gerekip gerekmediğini belirlemek için nesne varlığını kontrol ediyorsanız, PutObjectRequests koşullu yöntemlerini kullanmayı göz önünde bulundurun:
 

withIfMatch() and withIfNoneMatch().

Bu yöntemlerin her ikisi de bir nesne etag değerine ihtiyaç duyar ve PUT isteğinde "if-match","if-none-match" üst bilgilerini kullanır.
Ayrıca, her biri bir Date nesnesi alan withIfUnmodifiedSince() ve withIfModifiedSince() yöntemleri de vardır.

etag veya md5 kullanılamıyorsa, bir GetObjectMetadataRequest ile almak gerekir.
Etkili bir alternatif, Tarih yeterince eskiyse withIfUnmodifiedSince() kullanmak olabilir. 

ECS teknik desteği ile SR

Bir nesnenin varlığıyla ilgili bir endişe varsa ECS destek ekibiyle bir servis isteği açın.
 

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.