Я использую Google Drive, чтобы служить центральным местом для различных сценариев для хранения общих файлов. Тем не менее, я заметил, что несмотря на то, что Google Drive притворяется, что функционирует как файловая система, он не соблюдает обычные соглашения о файловой системе, такие как применение уникальных имен файлов. Это позволяет различным пользователям загружать отдельные файлы с одинаковыми именами файлов.
Есть ли способ предотвратить это?
Все мои скрипты используют один и тот же код для доступа к Drive API для загрузки файлов:
import os
import httplib2
from apiclient import discovery, errors
from apiclient.http import MediaFileUpload
credentials = get_google_drive_credentials()
service = discovery.build('drive', 'v2', http=credentials.authorize(httplib2.Http()))
dir_id = 'google_drive_folder_hash'
filename = '/some/path/blah.txt'
service.files().insert(
body={
'title': os.path.split(filename)[-1],
'parents': [{'id': dir_id}],
},
media_body=MediaFileUpload(filename, resumable=True),
).execute()
Если два или более сценариев запускают это, и при условии отсутствия условий гонки, почему этот код приведет к дублирующим загрузкам «blah.txt»? Как бы мне предотвратить это?