APK файл неправильно скачивается с гугл диска

Я написал сервер на node.js и вот код скачивания:

const { google } = require("googleapis");

function LoadGamesAPI(app) {
    app.get('/api/load-games', (req, res) => {
        res.json({ "message": "Waiting for GET..." });
    });

    app.post('/api/load-games', async (req, res) => {
        const { fileId } = req.body;

        try {
            const auth = new google.auth.GoogleAuth({
                keyFile: './API Components/games.json', scopes: ['https://www.googleapis.com/auth/drive.readonly']
            });

            const drive = google.drive({ version: 'v3', auth });
            const response = await drive.files.get({ fileId }, { responseType: 'stream' });

            res.set({
                'Content-Disposition': 'attachment; filename="fruit_ninja.apk',
                'Content-Type': 'application/vnd.android.package-archive',
            });

            response.data.on('end', () => {
                res.end();
            });

            response.data.on('error', (err) => {
                console.error('Ошибка потока:', err);
                res.status(500).json({ "error": "Ошибка потока" });
            });

            response.data.pipe(res);
        } catch (error) {
            console.error('Ошибка загрузки файла:', error);
            res.status(500).json({ "error": "Ошибка загрузки файла" });
        }
    });
}

module.exports = LoadGamesAPI;

ну и в index.js там все корректно запускается. И написал клинет на react.js

import React from 'react';
import axios from 'axios';

export function Game4() {
    const loadGame = async () => {
        console.log("Downloading game...");
        const SERVER = "http://localhost:5000";
        const fileId = "1oE9Z5H12Ip8-hnBmZwyvtncXWm-H2Gl0";

        try {
            const response = await axios.post(`${SERVER}/api/load-games`, { fileId }, { responseType: 'blob' });
            const url = window.URL.createObjectURL(new Blob([response.data]));
            const link = document.createElement('a');
            link.href = url;
            link.setAttribute('download', 'fruit_ninja.apk');
            document.body.appendChild(link);
            link.click();
        } catch (error) {
            console.error('Ошибка загрузки игры:', error);
        }
    };

    return (
        <div className='div'>
            <h1 style={{ "text-align": "center", "position": "relative", "padding-top": "30px" }}>Fruit Ninja</h1>

            <div className="download-links">
                <button className="download-button" onClick={() => loadGame()}>Скачать с сервера</button>
            </div>
        </div>
    );
}

Ну так вот все вроде-бы работает. НО когда открываешь файл (во первых он весит 100байт) то внутри него json

{
  "kind": "drive#file",
  "id": "1oE9Z5H12Ip8-hnBmZwyvtncXWm-H2Gl0",
  "name": "fruit-ninja.apk",
  "mimeType": "application/vnd.android.package-archive"
}

Это вообще как фиксить?


Ответы (1 шт):

Автор решения: Кирилл К.

там платно это. узнал давно, а написал только сейчас, потому что мне аккаунт забанили (на вопросы).

→ Ссылка