Google drive api rest загрузить файл с учетной записью сервиса не работает - PullRequest
4 голосов
/ 30 мая 2019

После создания учетной записи службы из консоли Google iam и получения json с помощью private_key, client_email и т. Д. ... У меня возникают проблемы при интеграции их в мой код JavaScript для загрузки файла на диск Google с сервером аутентификациина сервер.С использованием nodejs у меня не было никаких проблем (я использовал JWTtoken), я был бы признателен, если бы вы могли помочь мне правильно вставить параметры аутентификации в код пост-запроса javascript примера.

       $.ajax({
        type: "POST",
        url: "https://www.googleapis.com/upload/drive/v3/files",
        data:{
            uploadType:"multipart",
            parents: ["xxxxxxxxxxxxxxxxxxxxxxxx"]
        },
        success: function (data) {
            console.log(data);
        },
        error: function (error) {
            console.log(error);
        },
        async: true,
        data: formData,
        cache: false,
        contentType: false,
        Authorization: ????????????????? <---
        processData: false,
        timeout: 60000
    });
};

Когда я пытаюсь обновить этот файл, я не вижу результата.Кто-нибудь может мне помочь?

Ответы [ 2 ]

0 голосов
/ 07 июня 2019

Исходя из этой документации , если вы используете alt = media, вам нужно сделать авторизованный HTTP-запрос GET к файлу URL ресурса и включить параметр запроса alt =media.

GET https://www.googleapis.com/drive/v3/files/0B9jNhSvVjoIVM3dKcGRKRmVIOVU?alt=media Авторизация: Носитель ya29.AHESVbXTUv5mHMo3RYfmS1YJonjzzdTOFZwvyOAUVhrs

Проверьте , загрузите наш пример, выполнив наши примеры выполнения *1014* примеры выполнения, выполняющего наши 1013 * примеры выполнения, выполняющего примеры из 1014 * наших примеров выполнения с 1014 * примерами выполнения нашего файла с 1014 * примерами выполнения, с примерами выполнения *1014* примеров выполнения наших 1013 * примеров использованияКлиентские библиотеки API накопителя.

String fileId = "0BwwA4oUTeiV1UVNwOHItT0xfa2M";OutputStream outputStream = new ByteArrayOutputStream ();driveService.files (). get (fileId) .executeMediaAndDownloadTo (outputStream)

Получите идентификатор файла и передайте его через функцию для загрузки файла

0 голосов
/ 30 мая 2019

Добавить contentType: false внутри функции $ .ajax.

Добавьте ваш файл в объект данных внутри вызова ajax. Вы должны использовать объект FormData следующим образом:

var formData = new FormData();

formData.append('file', $('.file-input')[0].files[0]); 

и затем установите данные: formData внутри функции $ .ajax

...