Google Drive API, File oluştururken veya güncellerken dosya verilerini yüklemenize olanak tanır. Klasör gibi yalnızca meta veri içeren dosyalar oluşturma hakkında bilgi edinmek için Yalnızca meta veri içeren dosyalar oluşturma başlıklı makaleyi inceleyin.
Üç tür yükleme yapabilirsiniz:
Basit yükleme (
uploadType=media): Meta veri sağlamadan küçük bir medya dosyasını (5 MB veya daha az) aktarmak için bu yükleme türünü kullanın. Basit bir yükleme işlemi gerçekleştirmek için Basit bir yükleme işlemi gerçekleştirme başlıklı makaleyi inceleyin.Çok parçalı yükleme (
uploadType=multipart): "Bu yükleme türünü, dosyayı açıklayan meta verilerle birlikte küçük bir dosyayı (5 MB veya daha az) tek bir istekte aktarmak için kullanın. Çok parçalı yükleme gerçekleştirmek için Çok parçalı yükleme gerçekleştirme başlıklı makaleyi inceleyin.Devam ettirilebilir yükleme (
uploadType=resumable): Bu yükleme türünü büyük dosyalar (5 MB'tan büyük) için ve ağ kesintisi olasılığının yüksek olduğu durumlarda (ör. mobil uygulamadan dosya oluştururken) kullanın. Devam ettirilebilir yüklemeler, yükleme başına yalnızca bir ek HTTP isteği maliyetiyle küçük dosyalar için de çalıştığından çoğu uygulama için iyi bir seçimdir. Devam ettirilebilir yükleme gerçekleştirmek için Devam ettirilebilir yükleme gerçekleştirme başlıklı makaleyi inceleyin.
Google API istemci kitaplıkları, bu yükleme türlerinden en az birini uygular. Her türün nasıl kullanılacağı hakkında daha fazla bilgi için istemci kitaplığı belgelerine bakın.
PATCH ile PUT arasındaki farklar
Hatırlatma: HTTP fiili PATCH, kısmi dosya kaynağı güncellemesini desteklerken HTTP fiili PUT, tam kaynak değiştirmeyi destekler. PUT
Mevcut bir kaynağa yeni alan eklerken uyumluluğu bozan değişiklikler yapabileceğini unutmayın.
Dosya kaynağı yüklerken aşağıdaki yönergeleri kullanın:
- Devam ettirilebilir yüklemenin ilk isteği veya basit ya da çok parçalı yüklemenin tek isteği için API referansında belgelenen HTTP fiilini kullanın.
- İstek başlatıldıktan sonra, devam ettirilebilir yüklemeyle ilgili tüm sonraki istekler için
PUTkullanın. Bu istekler, çağrılan yöntemden bağımsız olarak içerik yükler.
Basit bir yükleme gerçekleştirme
Basit bir yükleme işlemi gerçekleştirmek için create yöntemini files kaynağında uploadType=media ile birlikte kullanın.
Aşağıda basit bir yüklemenin nasıl yapılacağı gösterilmektedir:
HTTP
POSTsorgu parametresiyle yöntemin/uploadURI'sineuploadType=mediaisteği oluşturun:POST https://www.googleapis.com/upload/drive/v3/files?uploadType=mediaDosyanın verilerini istek gövdesine ekleyin.
Şu HTTP üstbilgilerini ekleyin:
Content-Type. Yüklenen nesnenin MIME medya türüne ayarlanır.Content-Length. Yüklediğiniz bayt sayısına ayarlayın. Parçalı aktarım kodlaması kullanıyorsanız bu üstbilgi gerekli değildir.
İsteği gönderin. İstek başarılı olursa sunucu, dosyanın meta verileriyle birlikte
HTTP 200 OKdurum kodunu döndürür. {HTTP}
JavaScript
/**
* Uploads a file without metadata.
*
* @param {Blob|File} file The file to upload.
* @param {string} accessToken A valid OAuth 2.0 access token.
* @return {Promise<Object>} The uploaded file metadata.
*/
async function uploadFileSimple(file, accessToken) {
const response = await fetch(
'https://www.googleapis.com/upload/drive/v3/files?uploadType=media',
{
method: 'POST',
headers: {
'Authorization': `Bearer ${accessToken}`,
'Content-Type': file.type,
},
body: file,
}
);
if (!response.ok) {
throw new Error(`Upload failed: ${response.statusText}`);
}
return response.json();
}
Basit bir yükleme işlemi gerçekleştirdiğinizde temel meta veriler oluşturulur ve bazı özellikler (ör. MIME türü veya modifiedTime) dosyadan çıkarılır. Küçük dosyalarınızın olduğu ve dosya meta verilerinin önemli olmadığı durumlarda basit yükleme yöntemini kullanabilirsiniz.
Çok parçalı yükleme gerçekleştirme
Çok parçalı yükleme isteği, meta verileri ve verileri aynı istekte yüklemenize olanak tanır. Bağlantı başarısız olursa gönderdiğiniz veriler tekrar yüklenmeye yetecek kadar küçükse bu seçeneği kullanın.
Çok parçalı yükleme gerçekleştirmek için uploadType=multipart ile files kaynağında create yöntemini kullanın.
Aşağıda, çok parçalı yüklemenin nasıl yapılacağı gösterilmektedir:
Java
Python
Node.js
JavaScript
/**
* Uploads a file along with its metadata.
*
* @param {Blob|File} file The file to upload.
* @param {string} accessToken A valid OAuth 2.0 access token.
* @return {Promise<Object>} The uploaded file metadata.
*/
async function uploadFileMultipart(file, accessToken) {
const metadata = {
name: file.name,
};
const boundary = 'foo_bar_baz';
const delimiter = `\r\n--${boundary}\r\n`;
const closeDelimiter = `\r\n--${boundary}--`;
const requestBody = new Blob([
`--${boundary}\r\n`,
'Content-Type: application/json; charset=UTF-8\r\n\r\n',
JSON.stringify(metadata),
delimiter,
`Content-Type: ${file.type}\r\n\r\n`,
file,
closeDelimiter,
]);
const response = await fetch(
'https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart',
{
method: 'POST',
headers: {
'Authorization': `Bearer ${accessToken}`,
'Content-Type': `multipart/related; boundary=${boundary}`,
},
body: requestBody,
}
);
if (!response.ok) {
throw new Error(`Upload failed: ${response.statusText}`);
}
return response.json();
}
PHP
.NET
HTTP
POSTsorgu parametresiyle yöntemin/uploadURI'sineuploadType=multipartisteği oluşturun:POST https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart
İsteğin gövdesini oluşturun. İçeriği, RFC 2387 altında listelenen MIME multipart/related içerik türüne göre biçimlendirin. Bu tür iki bölümden oluşur:
- Meta veriler. Meta veriler önce gelmeli ve
Content-Typebaşlığıapplication/json;charset=UTF-8olarak ayarlanmış olmalıdır. Dosyanın meta verilerini JSON biçiminde ekleyin. - Medya Medya ikinci sırada olmalı ve herhangi bir MIME türünde
Content-Typeüstbilgisine sahip olmalıdır. Dosyanın verilerini medya bölümüne ekleyin. Her bölümü, başında iki kısa çizgi bulunan bir sınır dizesiyle tanımlayın. Ayrıca, son sınır dizesinden sonra iki tire ekleyin.
Şu üst düzey HTTP üstbilgilerini ekleyin:
Content-Type.multipart/relatedolarak ayarlayın ve isteğin farklı bölümlerini tanımlamak için kullandığınız sınır dizesini ekleyin. Örneğin:Content-Type: multipart/related; boundary=foo_bar_bazContent-Length. İstek gövdesindeki toplam bayt sayısına ayarlanır.
İsteği gönderin.
Yalnızca meta veri bölümünü ilişkili veriler olmadan oluşturmak veya güncellemek için standart kaynak uç noktasına
POSTveyaPATCHisteği gönderin:https://www.googleapis.com/drive/v3/filesİstek başarılı olursa sunucu, dosyanın meta verileriyle birlikteHTTP 200 OKdurum kodunu döndürür.- Meta veriler. Meta veriler önce gelmeli ve
Dosya oluştururken dosyanın name alanında bir dosya uzantısı belirtmelidirler. Örneğin, fotoğraf JPEG dosyası oluştururken meta verilerde "name": "photo.jpg" gibi bir değer belirtebilirsiniz. get yöntemine yapılan sonraki çağrılar, name alanında başlangıçta belirtilen uzantıyı içeren salt okunur fileExtension özelliğini döndürür.
Devam ettirilebilir yükleme gerçekleştirme
Devam ettirilebilir yükleme, iletişim hatası nedeniyle veri akışı kesintiye uğradıktan sonra yükleme işlemine devam etmenizi sağlar. Büyük dosya yüklemelerini baştan başlatmanız gerekmediğinden, devam ettirilebilir yüklemeler ağ hatası durumunda bant genişliği kullanımınızı da azaltabilir.
Dosya boyutlarınızın büyük ölçüde değişebileceği veya istekler için sabit bir süre sınırı olduğu durumlarda (ör. mobil işletim sistemindeki arka plan görevleri ve belirli App Engine istekleri) devam ettirilebilir yüklemeler kullanışlıdır. Yükleme ilerleme çubuğu göstermek istediğiniz durumlarda da devam ettirilebilir yüklemeleri kullanabilirsiniz.
Devam ettirilebilir yükleme, üst düzeyde birkaç adımdan oluşur:
- İlk isteği gönderin ve devam ettirilebilir oturum URI'sini alın.
- Verileri yükleyin ve yükleme durumunu izleyin.
- (İsteğe bağlı) Yükleme işlemi kesintiye uğrarsa yüklemeye devam edin.
İlk isteği gönderme
Devam ettirilebilir yükleme başlatmak için uploadType=resumable ile files kaynağında create yöntemini kullanın.
HTTP
POSTsorgu parametresiyle yöntemin/uploadURI'sineuploadType=resumableisteği oluşturun:POST https://www.googleapis.com/upload/drive/v3/files?uploadType=resumableBaşlatma isteği başarılı olursa yanıtta
200 OKHTTP durum kodu yer alır. Ayrıca, devam ettirilebilir oturum URI'sini belirten birLocationüst bilgisi içerir:HTTP/1.1 200 OK Location: https://www.googleapis.com/upload/drive/v3/files?uploadType=resumable&upload_id=xa298sd_sdlkj2 Content-Length: 0Dosya verilerini yükleyebilmek ve yükleme durumunu sorgulayabilmek için devam ettirilebilir oturum URI'sini kaydedin. Devam ettirilebilir oturum URI'sinin süresi bir hafta sonra dolar.
Mevcut bir dosyayı güncellemek için
PATCHsimgesini kullanın.Dosyanın meta verileri varsa meta verileri JSON biçiminde istek gövdesine ekleyin. Aksi takdirde istek gövdesini boş bırakın.
Şu HTTP üstbilgilerini ekleyin:
X-Upload-Content-Type. İsteğe bağlıdır. Sonraki isteklerde aktarılan dosya verilerinin MIME türüne ayarlanır. Verilerin MIME türü meta verilerde veya bu başlık aracılığıyla belirtilmemişse nesneapplication/octet-stream.olarak sunulur.X-Upload-Content-Length. İsteğe bağlıdır. Sonraki isteklerde aktarılan dosya verilerinin bayt sayısı olarak ayarlanır.Content-Type. Dosyanın meta verileri varsa zorunludur.application/json;charset=UTF-8olarak ayarlayın.Content-Length. Bölümlendirilmiş aktarım kodlaması kullanmıyorsanız gereklidir. Bu ilk isteğin gövdesindeki bayt sayısına ayarlanır.
İsteği gönderin. Oturum başlatma isteği başarılı olursa yanıtta boş gövdeli bir
200 OK HTTPdurum kodu yer alır. Ayrıca, yanıtta devam ettirilebilir oturum URI'sini belirten birLocationüstbilgisi bulunur. Dosya verilerini yüklemek ve yükleme durumunu sorgulamak için devam ettirilebilir oturum URI'sini kullanın. Devam ettirilebilir oturum URI'sinin süresi bir hafta sonra dolar.Devam ettirilebilir oturum URL'sini kopyalayıp kaydedin.
İçeriği yükleme işlemine devam edin.
JavaScript
/**
* Initiates a resumable upload session and returns the session URI.
*
* @param {Blob|File} file The file to upload.
* @param {string} accessToken A valid OAuth 2.0 access token.
* @return {Promise<string>} The resumable session URI.
*/
async function initiateResumableUpload(file, accessToken) {
const metadata = {
name: file.name,
mimeType: file.type,
};
const response = await fetch(
'https://www.googleapis.com/upload/drive/v3/files?uploadType=resumable',
{
method: 'POST',
headers: {
'Authorization': `Bearer ${accessToken}`,
'Content-Type': 'application/json; charset=UTF-8',
'X-Upload-Content-Type': file.type,
'X-Upload-Content-Length': file.size,
},
body: JSON.stringify(metadata),
}
);
if (!response.ok) {
throw new Error(`Failed to initiate upload: ${response.statusText}`);
}
return response.headers.get('Location');
}
İçeriği yükleyin
Devam ettirilebilir oturumla dosya yüklemenin iki yolu vardır:
- Tek bir istekte içerik yükleme: Dosya tek bir istekte yüklenebiliyorsa, tek bir istek için sabit bir zaman sınırı yoksa veya yükleme ilerleme durumu göstergesi görüntülemeniz gerekmiyorsa bu yaklaşımı kullanın. Bu yaklaşım, daha az istek gerektirdiği ve daha iyi performans sağladığı için en iyi yöntemdir.
İçeriği birden fazla parça halinde yükleme: Tek bir istekte aktarılan veri miktarını azaltmanız gerekiyorsa bu yaklaşımı kullanın. Belirli App Engine istek sınıflarında olduğu gibi, tek tek istekler için sabit bir zaman sınırı olduğunda aktarılan verileri azaltmanız gerekebilir. Yükleme ilerleme durumunu göstermek için özelleştirilmiş bir gösterge sağlamanız gerekiyorsa bu yaklaşım da faydalıdır.
HTTP - tek istek
- Devam ettirilebilir oturum URI'sine
PUTisteği oluşturun. - Dosyanın verilerini istek gövdesine ekleyin.
- Dosyadaki bayt sayısına ayarlanmış bir Content-Length HTTP başlığı ekleyin.
- İsteği gönderin. Yükleme isteği kesintiye uğrarsa veya
5xxyanıtı alırsanız Kesintiye uğrayan yüklemeyi devam ettirme bölümündeki prosedürü uygulayın.
JavaScript - tek istek
/**
* Uploads the entire file in a single request using the session URI.
*
* @param {string} sessionUrl The resumable session URI.
* @param {Blob|File} file The file to upload.
* @return {Promise<Object>} The uploaded file metadata.
*/
async function uploadFileSingleRequest(sessionUrl, file) {
const response = await fetch(sessionUrl, {
method: 'PUT',
headers: {
'Content-Length': file.size,
},
body: file,
});
if (!response.ok) {
throw new Error(`Upload failed: ${response.status} ${response.statusText}`);
}
return response.json();
}
HTTP - multiple requests
Devam ettirilebilir oturum URI'sine
PUTisteği oluşturun.Parçanın verilerini istek gövdesine ekleyin. Yükleme işlemini tamamlayan son parça hariç olmak üzere, 256 KB'ın (256 x 1024 bayt) katları şeklinde parçalar oluşturun. Yüklemenin verimli olması için parça boyutunu mümkün olduğunca büyük tutun.
Şu HTTP üstbilgilerini ekleyin:
Content-Length. Geçerli parçadaki bayt sayısına ayarlanır.Content-Range. Yüklediğiniz dosyadaki hangi baytların gösterileceğini ayarlayın. Örneğin,Content-Range: bytes 0-524287/2000000, 2.000.000 baytlık bir dosyada ilk 524.288 baytı (256 x 1024 x 2) yüklediğinizi gösterir.
İsteği gönderin ve yanıtı işleyin. Yükleme isteği kesintiye uğrarsa veya
5xxyanıtı alırsanız Kesintiye uğrayan yüklemeyi devam ettirme başlıklı makaledeki prosedürü uygulayın.Dosyada kalan her parça için 1-4 arasındaki adımları tekrarlayın. Sonraki parçanın nereden başlayacağını belirlemek için yanıttaki
Rangebaşlığını kullanın. Sunucunun önceki istekte gönderilen tüm baytları aldığını varsaymayın.
Dosya yükleme işlemi tamamlandığında, kaynakla ilişkili tüm meta verilerle birlikte 200 OK veya 201 Created yanıtını alırsınız.
JavaScript - birden fazla istek
/**
* Uploads a file in chunks of a specified size.
*
* @param {string} sessionUrl The resumable session URI.
* @param {Blob|File} file The file to upload.
* @param {number} chunkSize Chunk size in bytes (must be a multiple of 256 KB).
* @return {Promise<Object>} The uploaded file metadata.
*/
async function uploadFileChunked(sessionUrl, file, chunkSize = 1024 * 1024) {
let start = 0;
while (start < file.size) {
const end = Math.min(start + chunkSize, file.size);
const chunk = file.slice(start, end);
const chunkLength = end - start;
const response = await fetch(sessionUrl, {
method: 'PUT',
headers: {
'Content-Length': chunkLength,
'Content-Range': `bytes ${start}-${end - 1}/${file.size}`,
},
body: chunk,
});
if (response.status === 308) {
// 308 Resume Incomplete indicates chunk was received successfully.
start = end;
} else if (response.ok) {
// 200 OK or 201 Created indicates the upload is fully complete.
return response.json();
} else {
throw new Error(`Upload failed: ${response.status} ${response.statusText}`);
}
}
}
Kesintiye uğrayan yüklemeyi devam ettirme
Yükleme isteği yanıt almadan önce sonlandırılırsa veya 503
Service Unavailable yanıtı alırsanız kesintiye uğrayan yüklemeye devam etmeniz gerekir.
HTTP
Yükleme durumunu istemek için devam ettirilebilir oturum URI'sine boş bir
PUTisteği oluşturun.Dosyadaki mevcut konumun bilinmediğini belirtmek için
Content-Rangeüstbilgisini ekleyin. Örneğin, toplam dosya uzunluğunuz 2.000.000 baytsaContent-Rangedeğerini*/2000000olarak ayarlayın. Dosyanın tam boyutunu bilmiyorsanızContent-Rangedeğerini*/*olarak ayarlayın.İsteği gönderin.
Yanıtı işleme:
200 OKveya201 Createdyanıtı, yüklemenin tamamlandığını ve başka bir işlem yapılmasına gerek olmadığını gösterir.308 Resume Incompleteyanıtı, dosyayı yüklemeye devam etmeniz gerektiğini gösterir.404 Not Foundyanıtı, yükleme oturumunun süresinin dolduğunu ve yüklemenin baştan başlatılması gerektiğini gösterir.
308 Resume Incompleteyanıtı aldıysanız sunucunun hangi baytları aldığını belirlemek için yanıtınRangeüst bilgisini işleyin. YanıtınRangeüst bilgisi yoksa herhangi bir bayt alınmamıştır. Örneğin,Rangebytes=0-42başlığı, dosyanın ilk 43 baytının alındığını ve yüklenecek bir sonraki parçanın 44. bayttan başlayacağını gösterir.Yüklemeye nereden devam edeceğinizi öğrendiğinize göre, bir sonraki bayttan başlayarak dosyayı yüklemeye devam edin. Dosyanın hangi bölümünü gönderdiğinizi belirtmek için bir
Content-Rangeüstbilgisi ekleyin. Örneğin,Content-Range: bytes 43-1999999, 44 ile 2.000.000 arasındaki baytları gönderdiğinizi gösterir.
JavaScript
/**
* Resumes an interrupted upload by querying the status and uploading remaining bytes.
*
* @param {string} sessionUrl The resumable session URI.
* @param {Blob|File} file The file being uploaded.
* @return {Promise<Object>} The uploaded file metadata.
*/
async function resumeUpload(sessionUrl, file) {
// 1. Query the upload status by sending an empty PUT request
const statusResponse = await fetch(sessionUrl, {
method: 'PUT',
headers: {
'Content-Range': `bytes */${file.size}`,
},
});
if (statusResponse.ok) {
// Already completed
return statusResponse.json();
}
if (statusResponse.status !== 308) {
throw new Error(`Failed to query upload status: ${statusResponse.statusText}`);
}
// 2. Parse the Range header to determine received bytes
const rangeHeader = statusResponse.headers.get('Range');
let startOffset = 0;
if (rangeHeader) {
const parts = rangeHeader.split('-');
startOffset = parseInt(parts[1], 10) + 1;
}
// 3. Upload the remaining content of the file
const remainingChunk = file.slice(startOffset);
const response = await fetch(sessionUrl, {
method: 'PUT',
headers: {
'Content-Length': remainingChunk.size,
'Content-Range': `bytes ${startOffset}-${file.size - 1}/${file.size}`,
},
body: remainingChunk,
});
if (!response.ok) {
throw new Error(`Resume upload failed: ${response.statusText}`);
}
return response.json();
}
Medya yükleme hatalarını giderme
Medya yüklerken hataları gidermek için aşağıdaki en iyi uygulamalardan yararlanın:
5xxhataları için bağlantı kesintileri nedeniyle başarısız olan yüklemeleri devam ettirin veya yeniden deneyin.5xxhatalarını ele alma hakkında daha fazla bilgi için 500, 502, 503, 504 hataları başlıklı makaleyi inceleyin.403 rate limithataları için yüklemeyi yeniden deneyin.403 rate limithatalarını ele alma hakkında daha fazla bilgi için 403 hatası:rateLimitExceededbaşlıklı makaleyi inceleyin.- Devam ettirilebilir yükleme sırasında oluşan
4xxhataları (403dahil) düzeltmek için yüklemeyi yeniden başlatın. Bu hatalar, yükleme oturumunun süresinin dolduğunu ve yeni bir oturum URI'si isteyerek yeniden başlatılması gerektiğini gösterir. Yükleme oturumlarının da geçerlilik süresi bir hafta işlem yapılmadığında dolar.
Google Dokümanlar'a aktarılabilen dosya türleri
Drive'da oluşturduğunuz dosyaları Google Workspace dosya türlerine (ör. Google Dokümanlar veya E-Tablolar) dönüştürmek isteyebilirsiniz. Örneğin, özelliklerinden yararlanmak için en sevdiğiniz kelime işlemcideki bir dokümanı Dokümanlar'a dönüştürmek isteyebilirsiniz.
Bir dosyayı belirli bir Google Workspace dosya türüne dönüştürmek için dosyayı oluştururken Google Workspace'i mimeType belirtin.
Aşağıda, CSV dosyasını Google Workspace sayfasına dönüştürme işlemi gösterilmektedir:
Java
Python
Node.js
PHP
.NET
Dönüşümün kullanılabilir olup olmadığını görmek için dosyayı oluşturmadan önce about kaynağının importFormats alanını kontrol edin. Desteklenen
dönüşümler bu dizide dinamik olarak kullanılabilir. Bazı yaygın içe aktarma biçimleri şunlardır:
| Nereden | Alıcı |
|---|---|
| Microsoft Word, OpenDocument Metni, HTML, RTF, düz metin, Markdown | Google Dokümanlar |
| Microsoft Excel, OpenDocument E-tablosu, CSV, TSV, düz metin | Google E-Tablolar |
| Microsoft PowerPoint, OpenDocument Sunusu | Google Slaytlar |
| JPEG, PNG, GIF, BMP, PDF | Google Dokümanlar (resmi dokümana yerleştirir) |
| Düz metin (özel MIME türü), JSON | Google Apps Komut Dosyası |
update isteği sırasında medya yükleyip Dokümanlar, E-Tablolar veya Slaytlar dosyasına dönüştürdüğünüzde dokümanın tüm içeriği değiştirilir.
Bir resmi Dokümanlar'a dönüştürdüğünüzde Drive, resmi metne dönüştürmek için Optik Karakter Tanıma (OCR) özelliğini kullanır. Geçerli BCP
47 dil kodunu ocrLanguage parametresinde belirterek OCR algoritmasının kalitesini artırabilirsiniz.
Ayıklanan metin, dokümanda yerleştirilmiş resmin yanında görünür.
Dosya yüklemek için önceden oluşturulmuş bir kimlik kullanma
Drive API, kaynak oluşturmak, kopyalamak ve yüklemek için kullanılabilecek önceden oluşturulmuş dosya kimliklerinin listesini almanıza olanak tanır. Daha fazla bilgi için Dosyalarınızla kullanmak üzere kimlik oluşturma başlıklı makaleyi inceleyin.
Belirsiz bir sunucu hatası veya zaman aşımı varsa önceden oluşturulmuş kimliklerle yüklemeyi güvenli bir şekilde yeniden deneyebilirsiniz. Dosya işlemi başarılı olursa sonraki yeniden denemelerde 409 Conflict HTTP durum kodu yanıtı döndürülür ve yinelenen dosyalar oluşturulmaz.
application/vnd.google-apps.drive-sdk ve application/vnd.google-apps.folder MIME türleri hariç olmak üzere, Google Workspace dosyalarının oluşturulmasında önceden oluşturulmuş kimliklerin desteklenmediğini unutmayın. Benzer şekilde, Google Workspace dosya biçimine dönüştürmeyi referans alan yüklemeler de desteklenmez.
Bilinmeyen dosya türleri için dizine eklenebilir metni tanımlama
Kullanıcılar, doküman içeriğini bulmak için Drive kullanıcı arayüzünü kullanabilir. Ayrıca, uygulamanızdaki içerikleri aramak için list yöntemini files kaynağında ve fullText alanında da kullanabilirsiniz. Daha fazla bilgi için Dosya ve klasör arama başlıklı makaleyi inceleyin.
Drive, dosya türünü tanıdığında (metin belgeleri, PDF'ler, metin içeren resimler ve diğer yaygın türler dahil) belgeleri arama için otomatik olarak dizine ekler. Uygulamanız başka türde dosyalar (ör. çizimler, videolar ve kısayollar) kaydediyorsa dosyanın contentHints.indexableText alanına dizine eklenebilir metin sağlayarak keşfedilebilirliği artırabilirsiniz.
Dizinlenebilir metin hakkında daha fazla bilgi için Dosya meta verilerini yönetme başlıklı makaleyi inceleyin.