Maison >développement back-end >Golang >Pourquoi mon programme Go télécharge-t-il un fichier zip vide lorsque j'essaie de télécharger un fichier public depuis Google Drive ?

Pourquoi mon programme Go télécharge-t-il un fichier zip vide lorsque j'essaie de télécharger un fichier public depuis Google Drive ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-30 14:16:26475parcourir

Why does my Go program download an empty zip file when I try to download a public file from Google Drive?

Téléchargement de fichiers publics depuis Google Drive dans Golang

Lorsque vous essayez de télécharger un fichier zip partagé publiquement depuis Google Drive, vous pouvez rencontrer un problème où un "fichier" vierge. zip" est créé à la place. Cela est dû à un bug potentiel impliquant soit Google Drive, soit Go.

La racine du problème réside dans le fait que l'URL de téléchargement initiale fournie par Google Drive redirige vers une deuxième URL contenant un astérisque (*). comme délimiteur. Cependant, lorsque Go tente de récupérer cette URL, il code l'astérisque comme *, changeant l'URL en :

https://doc-00-c8-docs.googleusercontent.com/docs/securesc/ha0ro937gcuc7l7deffksulhg5h7mbp1/8i67l6m6cdojptjuh883mu0qqmtptds1/1376330400000/06448503420061938118/%2A/0B2Q7X-dUtUBebElySVh1ZS1iaTQ?h=16653014193614665626&e=download

Malheureusement, Google répond par "403 Forbidden" à cette URL codée, suggérant que l'encodage * n'est pas interprété avec succès comme un astérisque.

Pour résoudre ce problème :

  1. Obtenez l'URL corrigée : Utilisez un navigateur Web ou un outil tel que cURL pour accédez à l'URL de téléchargement initialement fournie et suivez les redirections jusqu'à ce que vous atteigniez l'URL finale contenant l'astérisque, qui devrait ressembler à :
https://doc-00-c8-docs.googleusercontent.com/docs/securesc/ha0ro937gcuc7l7deffksulhg5h7mbp1/8i67l6m6cdojptjuh883mu0qqmtptds1/1376330400000/06448503420061938118/*/0B2Q7X-dUtUBebElySVh1ZS1iaTQ?h=16653014193614665626&e=download
  1. Encoder manuellement l'astérisque : Encodez manuellement le caractère astérisque (*) dans l'URL corrigée à l'aide du codage en pourcentage. Cela donne l'URL suivante :
https://doc-00-c8-docs.googleusercontent.com/docs/securesc/ha0ro937gcuc7l7deffksulhg5h7mbp1/8i67l6m6cdojptjuh883mu0qqmtptds1/1376330400000/06448503420061938118/%2A/0B2Q7X-dUtUBebElySVh1ZS1iaTQ?h=16653014193614665626&e=download
  1. Utilisez l'URL corrigée : Mettez à jour votre code Go pour utiliser l'URL encodée manuellement. Cela devrait vous permettre de télécharger avec succès le fichier zip 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!

Déclaration:
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