Transférer vers un Drive partagé avec l'API Google Drive V3

Pour une raison quelconque, le dossier parent 404 n'a pas été trouvé

C'est une histoire lorsque vous utilisez un Drive partagé avec l'API Google Drive V3, car il y avait peu d'informations en dépit d'être super accro, alors notez! Lorsque j'essaie de télécharger un fichier dans un dossier du lecteur partagé et de le déplacer en spécifiant l'ID du dossier parent dans meta.Parents, pour une raison quelconque, j'obtiens l'erreur File not found [folderid] 404 ... ・ Si vous spécifiez un ID de dossier dans MyDrive qui n'est pas un lecteur partagé à titre d'essai, il réussira, il ne semble donc y avoir aucun problème avec l'authentification et le déroulement du programme.

Le téléchargement d'un Drive partagé est un problème

Du coup, j'ai dû définir les deux propriétés suivantes. Propriété DriveId de l'objet --meta

DriveId est également copié à partir de l'URL

Comme l'ID du dossier parent, DriveId est la dernière chaîne de caractères de l'URL lorsque le répertoire racine du lecteur partagé correspondant est ouvert dans le navigateur. Il existe également une propriété appelée «TeamDriveId», mais vous pouvez utiliser DriveId au lieu de «Déprécié».

Achevée

Le code global, y compris l'authentification, est maintenant comme ↓. C'est presque un exemple de copie de Quick Start. (Le code est C # SDK, mais les autres SDK seront identiques)

GoogleDriveUploader.cs


string[] Scopes = { DriveService.Scope.DriveFile }; //DriveFile à télécharger
string ApplicationName = "Nom de l'application approprié";

UserCredential credential;

using (var stream = new FileStream("client_secret_~~.apps.googleusercontent.com.json", FileMode.Open, FileAccess.Read))
{
    string credPath = "token.json";
    credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
        GoogleClientSecrets.Load(stream).Secrets,
        Scopes,
        "user",
        CancellationToken.None,
        new FileDataStore(credPath, true)).Result;
    Console.WriteLine("Credential file saved to: " + credPath);
}

// Create Drive API service.
var service = new DriveService(new BaseClientService.Initializer()
{
    HttpClientInitializer = credential,
    ApplicationName = ApplicationName,
});

var meta = new Google.Apis.Drive.v3.Data.File()
{
    Name = "Fichier à créer",
    MimeType = "application/octet-stream", //Mettons en place de manière appropriée
    DriveId = "ID de disque partagé(Comme 0ABcDeJiHiJKLmn23)",
    Parents = new List<string> { "ID du dossier parent(Comme 1auYhd9J9j ~)" }
};

using (var stream = new System.IO.FileStream("Chemin complet du fichier à télécharger", System.IO.FileMode.Open))
{
    //Nouvel ajout
    var request = service.Files.Create(meta, stream, meta.MimeType);
    request.Fields = "id, name";
    request.SupportsAllDrives = true;
    var ret = request.UploadAsync().Result;

    if (ret.Status == Google.Apis.Upload.UploadStatus.Failed)
    {
        throw ret.Exception;
    }
}

Recommended Posts

Transférer vers un Drive partagé avec l'API Google Drive V3
Télécharger des images sur Google Drive avec Python
Télécharger des fichiers sur Google Drive avec Lambda (Python)
Comment mettre en ligne sur un Drive partagé à l'aide de pydrive
Jusqu'à ce que nous ayons créé un mécanisme pour télécharger des fichiers partagés vers Slack vers Google Drive sans serveur
Comment rechercher Google Drive dans Google Colaboratory
Importez un fichier JPG à l'aide de l'API Google Drive en Python
Créez une carte thermique de tweet avec l'API Google Maps
Télécharger un fichier sur Dropbox
Montez Google Drive avec google-drive-ocamlfuse
Accédez à Google Drive avec Python
Conseils relatifs aux API Google Drive (Python)
Publier un message sur Google Hangouts Chat avec un fil de discussion (Python)
Importez et supprimez des fichiers dans Google Cloud Storages avec django-storage
Jouez avec l'API de données YouTube v3 à l'aide du client Python de l'API Google
Rubyist a essayé de créer une API simple avec Python + bouteille + MySQL
Une histoire sur l'ajout d'une API REST à un démon créé avec Python
J'ai essayé d'utiliser l'API Google avec Ruby et Python - Faites de la base de données une feuille de calcul et gérez-la avec Google Drive
Importation et téléchargement d'images sur le stockage Azure. Avec Python + requêtes + API REST
Comment envoyer une requête à l'API DMM (FANZA) avec python
Essayez de créer un article de Qiita avec l'API REST [Préparation environnementale]
Présentation de l'API Google Map avec rails
Créer une API REST pour faire fonctionner dynamodb avec le Framework Django REST
Comment créer une API de machine learning sans serveur avec AWS Lambda
J'ai essayé de créer un LINE BOT "Sakurai-san" avec API Gateway + Lambda
Envoyer des données à l'API DRF avec Vue.js
Créez un classificateur en cascade avec Google Colaboratory
[IOS] Utilisez des feuilles partagées avec Pythonista3.
[V11 ~] Un mémorandum à mettre dans Misskey
J'ai créé une API Web
Obtenez des vacances avec l'API Google Agenda
J'ai créé un outil pour corriger les données GPS avec l'API Map Matching de Mapbox (Mapbox Map Matching API)
Comment déposer Google Docs dans un dossier dans un fichier .txt avec python
Obtenez une liste d'articles publiés par les utilisateurs avec Python 3 Qiita API v2
J'ai créé une API de recherche de château avec Elasticsearch + Sudachi + Go + echo
J'ai essayé de créer une API de reconnaissance d'image simple avec Fast API et Tensorflow
Comment afficher la carte à l'aide de l'API Google Map (Android)
Comment télécharger avec Heroku, Flask, Python, Git (4)
Comment lire un fichier CSV avec Python 2/3
Envoyer un message à LINE avec Python (LINE Notify)
Comment envoyer un message à LINE avec curl
Téléchargez un grand nombre d'images sur Wordpress
Comment dessiner un graphique à 2 axes avec pyplot
Configurer un serveur local avec le téléchargement Go-File-
J'ai essayé "License OCR" avec l'API Google Vision
Afficher l'API Google Maps avec Rails et affichage des broches
Comment développer une application de panier avec Django
Exécutez l'API Google Analytics (core v3) en python
Essayez de dessiner une courbe de vie avec python
Je veux faire un jeu avec Python
Transcription vocale automatique avec l'API Google Cloud Speech
Essayez de créer un code de "décryptage" en Python
Comment utiliser l'API Google Cloud Translation
Serveur de jeu avec deux PC
Essayez l'authentification OAuth Slack avec Flask (API Slack V2)