Google Drive API: атомно, создайте папку (по имени), если она не существует - PullRequest
0 голосов
/ 10 января 2019

Предварительные ссылки на статьи StackOverflow:

Hello Я ищу способ совершать атомарные действия на Google Диске. Например, создайте папку по имени, если она не существует. Пока что то, что я обнаружил и прочитал в предыдущих материалах StackOver, я не нашел атомарного подхода.

Найти, если папка существует:

curl "https://www.googleapis.com/drive/v3/files" \
  --request GET \
  --verbose -G \
  --data-urlencode "'[** PARENT ID **]' in parents and name = '[** FOLDER_NAME **]' and mimeType = 'application/vnd.google-apps.folder' and trashed=false" \
  --header "authorization: Bearer [** ACCESS TOKEN **]" \
  --header "cache-control: no-cache"

Если вышеупомянутое возвращает пустой результат, то создайте папку с запрошенным именем, в основном тот же запрос с POST вместо GET:

curl "https://www.googleapis.com/drive/v3/files" \
  --request POST \
  --verbose -G \
  --data-urlencode "name = ''[** PARENT ID **]' in parents and [** FOLDER_NAME **]' and mimeType = 'application/vnd.google-apps.folder'" \
  --header "authorization: Bearer [** ACCESS TOKEN **]" \
  --header "cache-control: no-cache"

Однако, чтобы избежать условий гонки, если несколько запросов на создание папки выполняются одновременно.

Предложения? Спасибо за любую помощь

...