2012-03-21 15 views
5

Verileri Amazon'un S3 ünitesinde saklamak için Carrierwave ve Fog kullanan bir Rails3 uygulamasına sahibim. Yaptığım bu uygulama, her kullanıcının kendi güvenli EC2 paketine sahip olmasına izin vermem gerekiyor. Uygulamanın temeli, kullanıcının bir hesap (devise) oluşturacağı ve benim kullanıcımın EC2 Kullanıcı ve Parolası altındaki bir kullanıcı için bir depolama alanı oluşturacağıdır. Mevcut belgelere dayanarak, FOG YML'de yapılandırıldığı için birden fazla kanala sahip olmanın bir yolunu görmedim. Bu FOG_DIRECTORY değerini dinamik olarak kullanıcı özelliklerine göre ayarlamak için alternatifler sormak istiyorum.Sis/Carrierwave için Dinamik EC2 Kova Seçenekleri

Dinamik klasörleri yönetmenin bir yolu olduğunu biliyorum, ancak bu, kullanıcı tarafından ayrılmış kovalara ihtiyacım olduğu için işe yaramaz.

Şimdiden teşekkürler!

+0

Dinamik klasörleri neden kullanamadığınızı anlatabilir misiniz? Kullanıcılarınızın uygulamanız dışında doğrudan erişime mi ihtiyaçları var? Değilse, işaretlenmiş URL'ler harika çalışır. –

+0

Şu anda FOG Dizini benim sis ymlimde ayarlandı. Bir kullanıcı düzeyinde bir kova kimliği saklamak istiyorum. Bazı bilgileri depolamam gerektiğinde, kullanıcıya bakıp kullanacağı kova kimliğini bulacağım. Benim sorunum bu sis dizini yapılandırma yml dışında nasıl ayarlanır? – Gregg

cevap

3

Paketlerinizin zaten var olduğunu varsayarak. Aşağıdakileri deneyin:

#config/initializers/carrierwave.rb 

CarrierWave.configure do |config| 
    #...other configuration stuff... 
    config.fog_directory = 'null.example.com' 

    config.fog_host = proc do 
    proc do |file| 
     uploader = file.instance_variable_get :@uploader 
     "http://#{uploader.fog_directory}" 
    end 
    end 
end 

Not iç içe procs, carrierwave yanlıştır için bunun yazı olarak belgelere cevap. Fog_host öğesinin dinamik olmasını istiyorsanız, proc'u, carrywave yapılandırma sınıfının doğru şeyi yapması için sarmanız gerekir.

Fog_directory daha sonra dinamik olarak ayarlanmış olsa da. Başlatıcıda ayarlanmamış bir şey varsa, test çerçevelerini ve bu tür şikayetleri (her şey düzgün çalışıyorsa ayar her zaman geçersiz kılınır).

Set_bucket işlevini, kepçe adlandırma kurallarınıza uyacak şekilde değiştirin.

Kullanıcı başına bir kova yerine, geliştirmede sabit bir kova istiyorsanız, bazı koşullu mantık ekleyebilirsiniz.

Ayrıca this blog post başka bir yaklaşımı özetliyor.

İlgili konular