Maison > développement back-end > Golang > Pourquoi le téléchargement de fichiers publics Google Drive dans Go génère-t-il un fichier vide ?

Pourquoi le téléchargement de fichiers publics Google Drive dans Go génère-t-il un fichier vide ?

DDD
Libérer: 2024-10-29 01:19:02
original
1030 Les gens l'ont consulté

Why Does Downloading Public Google Drive Files in Go Result in an Empty File?

Problème de téléchargement de fichiers publics Google Drive dans Go

Dans cet article, nous visons à résoudre un problème rencontré lors du téléchargement de fichiers zip partagés publiquement. depuis Google Drive en utilisant Go. L'extrait de code initial, fourni ci-dessous, crée un fichier vierge nommé "file.zip" :

<code class="go">package main

import (
    "fmt"
    "io"
    "net/http"
    "os"
)

func main() {
    url := "https://docs.google.com/uc?export=download&amp;id=0B2Q7X-dUtUBebElySVh1ZS1iaTQ"
    fileName := "file.zip"
    fmt.Println("Downloading file...")

    output, err := os.Create(fileName)
    defer output.Close()

    response, err := http.Get(url)
    if err != nil {
        fmt.Println("Error while downloading", url, "-", eerrror)
        return
    }
    defer response.Body.Close()

    n, err := io.Copy(output, response.Body)

    fmt.Println(n, "bytes downloaded")
}</code>
Copier après la connexion

Enquête

Après enquête, il a été découvert que le problème réside dans la façon dont Go récupère l'URL. L'URL d'origine fournie, lorsqu'elle est visitée directement dans un navigateur, redirige vers une deuxième URL contenant un astérisque (*). Cependant, Go code l'astérisque sous la forme *, que les systèmes de Google ne reconnaissent pas comme un délimiteur valide.

Identification des bogues

Il semble que la gestion des URL par Go soit à l'origine du problème. . Selon les spécifications du schéma URI, les caractères réservés comme l'astérisque (*) doivent être codés en pourcentage à d'autres fins. Bien que Google Drive génère correctement l'URL de redirection, l'implémentation de Go peut ne pas gérer les caractères réservés codés comme prévu.

Conclusion

Le problème survient en raison d'un bug potentiel dans l'un ou l'autre La logique de redirection de Google Drive ou la gestion des URL de Go. Une enquête plus approfondie est nécessaire pour déterminer la cause exacte et identifier le responsable. Cependant, la solution de contournement fournie dans la solution fournie permet de télécharger avec succès les fichiers depuis Google Drive.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal