2011-01-27 17 views
7

Yerel dizinde veri depolayan bir iOS uygulamasına sahibim. Uygulamamı çalıştıran birden fazla cihaz arasında bu verileri senkronize edebilmek istiyorum. Şu anda bu temel verileri kullanıyor, ancak senkronizasyonu daha kolay hale getirmek için bazı metin tabanlı dosya depolama sistemine geçmek zorunda kalacağım.DropBox API ve iOS ile veri senkronizasyonu

DropBox API'sının bunu güzel ve kolay hale getirmesini beklerdim ve API'nın, başlangıçta kaydetme/kaydetme işlemindeki veri klasörünün içeriğini senkronize etmesini söyleyebilirim. Ancak, DropBox API'sı, dosyaları yükleme ve indirme konusunda yüceltilmiş bir yoldan başka bir şey değildir.

Bu varsayımda yanlış mıyım? DropBox API'si, metin dosyalarını tam metin halinde senkronize etmeyi gerçekten kolaylaştırır mı? Değilse, verebileceğiniz başka bir hizmet veya tavsiye var mı? Senkronizasyon zor - DropBox'ın daha kolay olmasını umuyordum.

+0

Merhabalar. Çalışmak için basit bir DropBox senkronizasyonu almanın başarılı olup olmadığını merak ediyordum. Şu anda aynı sinir bozucu problemle karşı karşıya kaldım ve tüm senkronizasyon sürecini örneklemek için bazı örnek kodlar alma ümidiyle burada yeni bir soru başladım. http://stackoverflow.com/questions/5950168/a-simple-sync-with-the-iphone-dropbox-api –

+0

Oldukça hızlı bir şekilde üstündeyim. API daha çok, senkronizasyon hizmetleri sağlamak için değil, bir kullanıcı DB hesabına erişebilirsiniz. –

cevap

7

/metadata'u kullanarak, bir klasörün içeriği hakkında bilgi almak daha kolay olamazdı. Yapmanız gereken tek şey, modified tarihini kontrol etmektir ve eğer sizinkinden farklıysa, uygun işlemi gerçekleştirin. Ayrıca, herhangi bir dosya içeriğinin meta verilerini de verir, böylece hangi dosyaların gerektiği gibi yüklenmesi/indirilmesi/eklenmesi/kaldırılması gerektiğini seçebilirsiniz.

Bundan daha fazla işlevsellik, çok uygulamaya bağımlı olacaktır; Farklı dosyaları ne zaman ve nasıl ele almak istediğinize kendiniz karar verebilirsiniz.

Dropbox API Documentation

+0

Teşekkürler Andy, metadata çağrısının üzerinden geçtiğimi sanırım, aslında oldukça önemli bir yer! Bu yaklaşım nasıl çalışır? - metadata çağrısı yapar, farklı bir değiştirilmiş tarihe sahip olan dosyaları günceller, yeni olan tüm dosyaları indirir, güncellenen dosyaları yükler, sonra yeni olan tüm dosyaları yükler. –

+0

Hmm, ancak dizinden silinen dosyaları nasıl ele alınır? Bir dosyanın yeni olup olmadığını ve yüklenmesi mi yoksa başka bir cihazda silinip kaldırılmasının gerekip gerekmediğini nasıl anlarım? –

+0

Bana giden yol gibi görünüyor - bu API'ye ne sıklıkla girmek istediğiniz konusunda size kalmış. Bir mobil cihaz için büyük olasılıkla oyuna girmeyecek sınırlamalar (erişim belirteci başına günlük 5000 istek ve 300MB/dosya) vardır, bu yüzden bu cephede iyi olmalısınız. –

0

Orada paylaşılan klasörlerden birine sınırlandırılabilir bir RSS beslemesi olduğunu ama bu tür düşük hacimli tutmak için olayları filtreler. Andy beri tekrarlamak olmaz

3
+0

Nanaimo blogunda kodu oluştururken aşağıdaki hatayı alıyorum. Bu hatalar, loadMetadata işlevinde ortaya çıkar: bir yapı veya birleşimdeki bir öğeye üye içeriği isteğinde bulunma VE yapı veya birlik olmayan bir şeyde üye 'yolunu' isteme ve ayrıca addObject ifadesinde bir sorun var. geçerli nesne tipi). Lütfen – Namratha

+0

numaralı telefona yardım edin. Bu eğitimde resimler görebiliyor musunuz? – rjobidon

2

Belirtildiği gibi, DropBox Sync API'sinde şu anda bahsettiğiniz şeyi yapacağını düşünüyorum (Kişisel olarak denemedim, daha önce SDK'yı kullanarak benim uygulamada Dropbox desteğini entegre ettim)). Bu, yalnızca dropbox ile çalışıyorsanız yeterli olacaktır.

Benim durumumda, uygulamanıza ek çevrimiçi depolama ("Bulut") hizmetleri için destek eklemeye başladım ve aralarındaki farklılıkları nasıl ele aldıklarıyla aralarındaki farklarla başa çıkmanın biraz zor olduğunu anlıyorum. kimlik doğrulaması, sürüm, adlandırma vb. Örneğin, Dropbox'ın API dosyaları kendi yollarına göre referans alırken, Box API'sı dosyaları dosya kimliğine göre gösterir (ilişkili bir yola sahiptir, ancak dosya taşındığında aynı kalır). Daha sonra, birden çok istemci birden çok sunucuyla çakışan değişiklikleri denediğinde ve eşzamanlı hale getirdiğinde ortaya çıkan tüm uyuşmazlık çözüm sorunları (birleşme) da vardır.

Geçtiğimiz günlerde, tüm önemli hizmetlere bağlanabilen bir kütüphane geliştirmek için açık kaynaklı bir proje başlatmayı ve farklılıklar üzerinde çalışan bir soyutlama katmanı sağlamayı ve aynı zamanda sizin için senkronizasyon işlemini gerçekleştirmeyi düşündüm. Zaten bazı kodlarım var (bugüne kadar yayınlamamıştım), ancak projeyi başlatmak için bunu kullanabilirdi.

Bu size uygun mu? Siz (veya başkaları) böyle bir çabaya katılmaya istekli misiniz?

(modlara dikkat edin: Bunun bir konu dışı sapma olabileceğini anlıyorum - bu konuda üzgünüm.Bunu tartışmak için daha uygun bir forum önerebilirseniz, oradaki konuşmayı yapmaktan mutluluk duyarım.

İlgili konular