2012-03-15 11 views
14

Her saat başı Amazon S3'e çok küçük dosyalar yükleyen bir Codeigniter web uygulamasına sahibim. Bu da S3 istek ücretimin gerçek hızla artmasına neden oluyor. Bunun üstesinden gelmenin bir yolu, dosyayı sıkıştırmak, zip dosyasını S3'e yüklemek, ardından S3 üzerindeyken açmaktır.S3'e ZIP dosyası yükleniyor, Unzip'i kullanmak için EC2'yi kullanın

Bu, EC2 kullanılarak yapılabilir mi? Ya da bunu başarmak için daha iyi bir yöntem var mı? Teşekkür ederim!!

DÜZENLEME: EC2'yi kullanacak olsaydım, bir EC2 örneğinin oluşturulmasını tetiklemek için PHP'yi kullanırım, sıkıştırılmış dosyaları açmak için gereken PHP dosyasını yükleyin, sıkıştırılmamış dosyaları S3'e kopyalayın ve sonra EC2 örneğini yok edin.

+0

Eğer S3 üzerinde sıkıştırılmış dosyaları depolamak olmaz mı? –

+0

Tek tek sıkıştırılmış dosyaların S3'te kullanılabilir olmasını istiyorum. Sıkıştırmanın nedeni (100 küçük dosya, 1 zip dosyasına), S3 kullanımının maliyetlerini önemli ölçüde artıran "PUT" isteklerinin sayısını azaltmaktır. – Nyxynyx

+1

ZIP dosyalarını S3'e yüklemek ve maliyetleri düşürmek için bunları EC2'de açmak yardımcı olmaz: EC2'den S3'e gelen her bir sıkıştırılmamış dosya için hala bir PUT isteğine mal olur. – Daan

cevap

23

Aynı bölgede bir EC2 makineniz varsa, oraya yüklemenizi öneririm ve sıkıştırılmış halde s3'e indirirsiniz. S3, tüm statik olarak kendi başına unzip olamaz.

ec2 ile s3 arasında herhangi bir ek ücret alınmaz, böylece ec2, unzipping işlemlerini gerçekleştirebilir ve daha sonra ek aktarım ücretleri olmaksızın s3 grubunuza yazabilir.

+2

Bant genişliği ücretsizdir, ancak PUT'ler için ödeme yaparsınız (şu anda 1.000 istek başına 0,005 dolar). 10.000 küçük dosya içeren bir zip dosyanız varsa, yükleme bir şeye mal olur ve daha da önemlisi bir süre alacaktır. – Ben

+1

Sevgili @Akshat, eğer bir şeye sahipseniz bir klasöre (sadece açılmış olan) bir klasör yazmak için lütfen bağlantıyı veya kodu paylaşın. –

2

S3 sadece depolamadır. Yüklediğiniz dosya ne olursa olsun saklanan dosyadır. Bir zip dosyası yükleyemezsiniz, ardından S3'te bir kez çıkartırsınız. Uygulamayı yazdıysan, söyleyebileceğim en iyi şey, dosyaları nasıl depoladığınızı yeniden tasarlamayı denemek. S3 talepleri oldukça ucuz ... çok fazla talepte bulunmalısınız.

2

Binlerce küçük resim dosyası ile dosyaları açmak için bu hizmeti kullanıyorum, her zip dosyası yüklüyor 4 GB ve http://www.cloudzipinc.com/service/s3_unzip'u kullanarak unzip'in maliyeti 1 dolar civarında olabilir, belki de birilerine yardımcı olabilir.

Bunu söyledikten sonra, Python'u Boto kitaplığı ile kullanmayı daha kolay bulabilirsiniz. Bu PHP'den çok daha verimli çalışacaktır.

İlgili konular