Heim > Backend-Entwicklung > Golang > Warum lädt mein Go-Programm eine leere ZIP-Datei herunter, wenn ich versuche, eine öffentliche Datei von Google Drive herunterzuladen?

Warum lädt mein Go-Programm eine leere ZIP-Datei herunter, wenn ich versuche, eine öffentliche Datei von Google Drive herunterzuladen?

Patricia Arquette
Freigeben: 2024-10-30 14:16:26
Original
475 Leute haben es durchsucht

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

Öffentliche Dateien von Google Drive in Golang herunterladen

Beim Versuch, eine öffentlich freigegebene ZIP-Datei von Google Drive herunterzuladen, kann es zu einem Problem kommen, bei dem eine leere „Datei“ angezeigt wird. Stattdessen wird „zip“ erstellt. Dies ist auf einen potenziellen Fehler zurückzuführen, der entweder Google Drive oder Go betrifft.

Die Ursache des Problems liegt in der Tatsache, dass die von Google Drive bereitgestellte anfängliche Download-URL auf eine zweite URL umleitet, die ein Sternchen (*) enthält als Trennzeichen. Wenn Go jedoch versucht, diese URL abzurufen, kodiert es das Sternchen als * und ändert die URL in:

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

Leider antwortet Google mit „403 Forbidden“ auf diese kodierte URL, was darauf hindeutet, dass es sich um die Kodierung * handelt wird nicht erfolgreich als Sternchen interpretiert.

Um dieses Problem zu beheben:

  1. Erhalten Sie die korrigierte URL:Verwenden Sie einen Webbrowser oder ein Tool wie cURL, um Greifen Sie auf die ursprünglich bereitgestellte Download-URL zu und folgen Sie den Weiterleitungen, bis Sie die endgültige URL mit dem Sternchen erreichen, die etwa so aussehen sollte:
https://doc-00-c8-docs.googleusercontent.com/docs/securesc/ha0ro937gcuc7l7deffksulhg5h7mbp1/8i67l6m6cdojptjuh883mu0qqmtptds1/1376330400000/06448503420061938118/*/0B2Q7X-dUtUBebElySVh1ZS1iaTQ?h=16653014193614665626&e=download
Nach dem Login kopieren
  1. Sternchen manuell kodieren: Kodieren Sie das Sternchen (*) manuell in der korrigierten URL mithilfe der Prozentkodierung. Daraus ergibt sich die folgende URL:
https://doc-00-c8-docs.googleusercontent.com/docs/securesc/ha0ro937gcuc7l7deffksulhg5h7mbp1/8i67l6m6cdojptjuh883mu0qqmtptds1/1376330400000/06448503420061938118/%2A/0B2Q7X-dUtUBebElySVh1ZS1iaTQ?h=16653014193614665626&e=download
Nach dem Login kopieren
Nach dem Login kopieren
  1. Verwenden Sie die korrigierte URL: Aktualisieren Sie Ihren Go-Code, um die manuell codierte URL zu verwenden. Dadurch sollten Sie die ZIP-Datei erfolgreich von Google Drive herunterladen können.

Das obige ist der detaillierte Inhalt vonWarum lädt mein Go-Programm eine leere ZIP-Datei herunter, wenn ich versuche, eine öffentliche Datei von Google Drive herunterzuladen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage