Po prostu zaczynam od Google Drive, pomyślnie przesłałem pliki i listę wszystkich moich plików, ale nie mogę znaleźć moich przesłanych plików w moim dysku Google?

fs.readFile('credentials.json', (err, content) => {
    if (err) return console.log('Error loading credentials', err);
    const credentials = JSON.parse(content);
    const { client_email, private_key } = credentials;

    auth = new google.auth.JWT(
      client_email,
      null,
      private_key,
      SCOPES,
    );
    drive = google.drive({
      version: 'v3',
      auth,
    });
  });

List of files from drive

drive.files.list({}, (err, res) => {
    if (err) throw err;
    const files = res.data.files;
    console.log(files);
    if (files.length) {
    files.map((file) => {
      console.log(file);
    });
    } else {
      console.log('No files found');
    }
  });

Upload file

const fileMetadata = {
    name: 'test_only', // file name that will be saved in google drive
  };

  const media = {
    mimeType: 'image/png',
    body: fs.createReadStream('image.png'), // Reading the file from our server
  };

    // Uploading Single image to drive
  drive.files.create(
    {
      resource: fileMetadata,
      media: media,
    },
    async (err, file) => {
      console.log(err);
      if (err) {
        // Handle error
        console.error(err);
      } else {
        console.log(file.data.id);
      }
    }
  );

Results on list of files

Przegapiłem coś?

0
blitzen12 10 październik 2020, 19:38

1 odpowiedź

Najlepsza odpowiedź

Wierzę, że twoja obecna sytuacja jest następująca.

  • Z skryptu autoryzacji stwierdzono, że korzystasz z konta serwisowego.

      auth = new google.auth.JWT(
        client_email,
        null,
        private_key,
        SCOPES,
      );
    
  • Możesz przesłać pliki i pobrać listę plików za pomocą skryptu.

Punkty modyfikacji:

  • Od I can't seem to find my uploaded files in my google drive, pomyślałem, że powodem twojego problemu jest przesłanie plików za pomocą konta serwisowego. W takim przypadku napęd konta serwisowego różni się od Twojego dysku Google. W ten sposób przesłane pliki nie mogą być wyświetlane w dysku Google. A także napęd konta serwisowego nie może być bezpośrednio wyświetlany z przeglądarką.

Jako obejście, aby pokazać przesłane pliki w przeglądarce, chciałbym w następujących obejściach.

Obejście 1:

W tym obejściu, folder w Twoim dysku Google jest udostępniony e-mailem na koncie serwisowym. A przesłane pliki są umieszczane w folderze udostępnionym. W ten sposób można zobaczyć przesłane pliki za pomocą konta usługi w dysku Google.

Obejście 2:

W tym obejściu, folder na koncie serwisowym jest współdzielony z e-mailem konta Google. A przesłane pliki są umieszczane w folderze udostępnionym. Dzięki temu możesz zobaczyć przesłane pliki za pomocą konta usługi w przeglądarce.

1
Tanaike 10 październik 2020, 23:15