[JAVA] Google Drive API Set File Permission (Définir les autorisations sur les fichiers Google Drive)

Salut!

Télécharger des fichiers sur Google Drive avec l'application Android Vous souhaiterez peut-être partager ce fichier avec d'autres.

Cette fois, j'écrirai un processus pour accorder des autorisations sur le fichier téléchargé!

Vous pouvez définir plusieurs autorisations (setType)! !! -Pour chaque utilisateur. (Définir le nom et l'adresse e-mail du compte Google) -Pour chaque groupe. (E-mail du groupe Google) -Pour chaque domaine. (Com.jp, etc.) ・ Autre (n'importe qui).

CreatePermission.java


    /**
     *Paramètres d'autorisation
     * @param driveService drive
     * @param fileId fileID
     * @throws IOException create permission happen IOException
     */
    private void createPermission(Drive driveService,String fileId) throws IOException{
        JsonBatchCallback<Permission> callback = new JsonBatchCallback<Permission>() {
            @Override
            public void onFailure(GoogleJsonError e, HttpHeaders responseHeaders) {
                // Handle error
                System.err.println(e.getMessage());
            }
            @Override
            public void onSuccess(Permission permission, HttpHeaders responseHeaders) {
                // Handle success
                System.out.println("Permission ID: " + permission.getId());
            }
        };
        BatchRequest batch = driveService.batch();
        Permission userPermission = new Permission()
                .setType("anyone")
                .setRole("reader");
        driveService.permissions().create(fileId, userPermission)
                .setFields("id")
                .queue(batch, callback);
        batch.execute();
    }

!! Lors de la suppression des autorisations! Il est nécessaire d'obtenir à l'avance l'ID requis pour la suppression.

DeletePermissions.java


    File fileData; //Informations de fichier de Google Drive que vous souhaitez supprimer
    for(Permission permission : fileData.getPermissions()){
        driveService.permissions()
        //ID de fichier pour lequel l'autorisation doit être supprimée, ID d'autorisation.
        .delete(fileData.getId() , permission.getId())
        .queue(batch,callback);
    }

!! Autre! Si vous définissez des autorisations sur le dossier Google (boss), Les fichiers (serviteurs) qui appartiennent à ce boss ont les mêmes privilèges. Cependant, soyez prudent car cela n'a aucun sens de supprimer cette autorité pour vos serviteurs! !! Battez le boss ou préparez un autre boss!

Après cela, veuillez ajuster l'atmosphère. Veuillez commenter si quelque chose se passe. Plus de détails peuvent être trouvés à l'URL ci-dessous.

https://developers.google.com/drive/api/v3/manage-sharing

Recommended Posts

Google Drive API Set File Permission (Définir les autorisations sur les fichiers Google Drive)
Déplacement de fichiers Google Drive
Importez un fichier JPG à l'aide de l'API Google Drive en Python
ls -R sur Google Drive
Conseils relatifs aux API Google Drive (Python)
Téléchargez des fichiers Google Drive en Python
[Rails 6 / API Google Map] Publiez une adresse et définissez plusieurs marqueurs sur la carte
Tweet (API 1.1) avec Google App Engine pour Python
Télécharger des fichiers directement sur Google Drive (à l'aide de Google Colaboratory)
Télécharger des fichiers sur Google Drive avec Lambda (Python)