2016-04-12 9 views
2

Dosyaları sunucudan istemcinin google sürücüsüne yükleyen bir php betiği oluşturmaya çalışıyorum, dosyaları yüklemeyi ve hatta curl kullanarak oluşturduğum bir klasörün içinde oluşturmayı başardım, ancak sorun şu ki;Google Drive'da klasörün mevcut olup olmadığı nasıl kontrol edilir?

$folder_fields = "{\"title\":\"innitel\", 
    \"parents\":\"[{}]\", 
    \"mimeType\":\"application/vnd.google-apps.folder\"}"; 


$ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, "https://www.googleapis.com/drive/v2/files"); 
    curl_setopt($ch, CURLOPT_PORT, 443); 
    curl_setopt($ch, CURLOPT_POST, 1); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $folder_fields); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_HEADER, true); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, ARRAY("Authorization: Bearer $access_token", 
    "Content-Type: application/json")); 
    $reponse = curl_exec($ch); 

Bu yöntem oluşturur: evet id almak ve o klasörün id dosya yüklemek gerekiyorsa istemci zaten belirli ada sahip bir klasör var, burada ben dosyayı yapmak için kullanılan koddur Komut dosyası her çalıştırıldığında aynı ada sahip klasör. Yapmanın bir yolu var mı?

Not: Sunucunun php sürümü, desteklenmeyen bir 5.3 olduğundan, google-api-php-client kullanamıyorum.

+0

PHP sürümünüzü yükseltin. Ciddi anlamda. 5.3. Güvenli olmayan ve yeni PHP'de kapsanan birçok olası hack girişimi için açık olarak kabul edilir. –

+0

Haklısınız, ama sorun şu ki, çalıştığım firma bunu yapamaz çünkü sorunlara neden olur. – MuhammadNe

+1

Alt-optimal kod, güvenlik sızıntılarının olması için bir mazeret olarak kullanılmamalıdır. Yerel sunucunuzdaki tüm sorunları düzeltmeniz, kodu (dua) yüklemeniz ve bulabileceğiniz herhangi bir problemi çözmeniz gerekiyor. Bunun için ayrılan zaman yoksa, müşteriye, üzgün olmaktan daha güvenli olduğunu söylemelisiniz. –

cevap

1

Bu yaklaşım, genel olarak benzersiz klasör adlarına sahip olup olmadığınıza bağlıdır. Cevap evet ise, sadece bir files.list q title = 'foo' yapın. Bir öğe alırsanız, mevcut kimlik var. Öğe almazsanız, onu oluşturmanız gerekir. Diğer yandan, dünya çapında benzersiz klasör adlarınız yoksa, klasör hiyerarşisini oluşturup önemli ölçüde daha karmaşık olan ebeveynleri kontrol etmeniz gerekir.

+0

Teşekkür ederim, bu yaklaşımı mümkün olan en kısa sürede yapmaya çalışıp çalışmayacağını kontrol etmeye çalışacağım. – MuhammadNe