Benim API sunucum çok sınırlı bir disk alanına (500MB) ve belleğe (1GB) sahiptir. API'den biri, bir dosya almak için aldığı çağrıları çağırır. Tüketici, API'yi çağırır ve indirilecek URL'yi iletir.Bir sunucudan diğerine (curc kullanarak) dosya akışı nasıl yapılır (sınırlı sunucu kaynakları)
Sunucumun "hedefi" bu dosyayı Amazon S3'e yüklemektir. Ne yazık ki, tüketiciden dosyayı doğrudan S3'e (gereksinimlerin bir kısmı) yüklemesini istemiyorum.
Sorun bazen büyük dosyalar (10GB) ve bunları diske kaydedip S3'e yüklemek bir seçenek değil (500MB disk alanı sınırı).
Sorum şu ki, Curl Linux programını kullanarak dosyayı giriş URL'sinden S3'e nasıl "nasıl" yapabilirim?
Not: Farklı yollarla pipetleme yapabildim, ancak önce tüm dosyayı indirmeye çalışıyorum ve başarısız oluyor ya da bellek hatası veriyor ve çıkıyorum. Tahminim indirmenin yüklemeden çok daha hızlı olması, dolayısıyla 10GB'lık dosyalar aldığımda piponun/belleğin büyüdüğü ve patladığını (sunucuda 1GB bellek) patlatıyor.
Curl ve borular kullanarak yapmaya çalıştığım şeyi elde etmenin bir yolu var mı?
, teşekkür ederiz - Jack
Sunucunuz nasıl uygulanır? Çoğu programlama dili, kodda bir anda çok fazla yer kalmayacak şekilde kodda "akışa/akışa" izin vermelidir. Eğer bu bir seçenek değilse, o zaman en iyi bahsinize örnek olarak orta ölçekli bir EBS hacmi (100GB demek) eklemek ve bunu geçici bir evreleme alanı olarak kullanmak olabilir. – stdunbar
@stdunbar - çok fazla iç ayrıntıya girmeden, kıvırmayı ve işi yapmayı tercih ederim. Eğer uygunsa, harika! Eğer değilse, başka yollar bulmam gerekecek ve önerinizi alacağım. Ty – Joe