S3'te dizin başına maksimum dosya


87

Bir milyon resmim olsaydı, onları bir klasör / alt klasör hiyerarşisinde depolamak mı yoksa hepsini doğrudan bir kovaya (herhangi bir klasör olmadan) atmak daha mı iyi olurdu?

Tüm görüntüleri hiyerarşisiz bir kovaya dökmek LİSTE işlemlerini yavaşlatır mı?

Hareket halindeyken klasörler ve alt klasörler oluşturmada ve ACL'lerini ayarlamada (programatik olarak konuşma) önemli bir ek yük var mı?

Yanıtlar:


127

S3, hiyerarşik ad alanlarına saygı göstermez. Her bir paket, anahtardan nesneye (ilişkili meta veriler, EKL'ler vb. İle birlikte) birkaç eşleme içerir.

Nesnenizin anahtarı bir '/' içerse bile, S3 yolu düz bir dize olarak değerlendirir ve tüm nesneleri düz bir ad alanına yerleştirir.

Deneyimlerime göre, LIST işlemleri nesne sayısı arttıkça (doğrusal olarak) daha uzun sürüyor, ancak bu muhtemelen Amazon sunucularında ve istemcinize bağlanan artan G / Ç'nin bir belirtisidir.

Ancak, arama süreleri nesne sayısıyla artmıyor gibi görünüyor - büyük olasılıkla kendi uçlarında bir tür O (1) hashtable uygulamasıdır - bu nedenle aynı pakette birçok nesneye sahip olmak normal kullanım için küçük kovalar kadar performanslı olmalıdır LİSTELER değil).

EKL'ye gelince, bağışlar grupta ve her bir nesnede ayarlanabilir. Hiyerarşi olmadığı için, bunlar sizin tek seçeneğinizdir. Açıkçası, pek çok kova çapında hibe kitlesel dosyaların milyonlarca varsa yönetici baş ağrıları azaltmak, ama sadece olabilir hatırlar olarak ayarlayarak vermek kova çapında hibe herkes için ACL maksimum alt kümesi olmalıdır böylece, bunları iptal, izinleri değil onun içerikleri.

Aşağıdakiler için ayrı bölümlere ayırmanızı tavsiye ederim:

  • tamamen farklı içerik - görüntüler, ses ve diğer veriler için ayrı bölümlere sahip olmak daha mantıklı bir mimari sağlar
  • önemli ölçüde farklı EKL'ler - her nesnenin belirli bir EKL'yi aldığı bir paketiniz veya farklı EKL'lere sahip ve nesneye özgü EKL'ler içermeyen iki grubunuz varsa, iki grubu alın.

S3'te kovalar vardır ve sonra içinde, bir klasörün muhtemelen sistemin gözünde bir nesne olduğu 'klasörler' ve 'nesneler' olabilir
mwm

14
@mwm yanılıyorsunuz. "Klasörler", kullandığınız araç tarafından sağlanan kesinlikle UI nitelikleridir. James, anahtarların eğik çizgileri olabileceği konusunda haklı ama s3'ün hiç umurunda değil - kesinlikle onları klasör olarak görmüyor.
Ry4an Brase

S3, sınır isteklerini kesinlikle yol önekine göre derecelendirir, resmi belgelere bakın: docs.aws.amazon.com/AmazonS3/latest/dev/…
Anatoly

S3 Önekleri artık gerekli ya da tavsiye şunlardır: aws.amazon.com/about-aws/whats-new/2018/07/...
Aea


-3

Bir kök ve ardından en az bir alt dizine sahip bir dizin yapısı kullanıyorum. Kök altındaki dizin olarak sık sık "belge içe aktarma tarihi" kullanıyorum. Bu, yedeklemeleri yönetmeyi biraz daha kolaylaştırabilir. Hangi dosya sistemini kullanıyor olursanız olun, sonunda bir dosya sayısı sınırına (fiziksel bir sınır olmasa da pratik) ulaşmanız zorunludur. Birden fazla kökü desteklemeyi de düşünebilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.