Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa Memuat Turun Fail Google Drive Awam dalam Go Menghasilkan Fail Kosong?

Mengapa Memuat Turun Fail Google Drive Awam dalam Go Menghasilkan Fail Kosong?

DDD
DDDasal
2024-10-29 01:19:02927semak imbas

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

Isu dengan Memuat turun Fail Google Drive Awam dalam Go

Dalam artikel ini, kami berhasrat untuk menangani isu yang dihadapi semasa memuat turun fail zip yang dikongsi secara terbuka daripada Google Drive menggunakan Go. Coretan kod awal, yang disediakan di bawah, mencipta fail kosong bernama "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>

Penyiasatan

Setelah disiasat, didapati isu itu terletak pada cara Go mengambil URL. URL asal yang disediakan, apabila dilawati terus dalam penyemak imbas, mengubah hala ke URL kedua yang mengandungi asterisk (*). Walau bagaimanapun, Go mengekodkan asterisk sebagai *, yang sistem Google tidak mengiktiraf sebagai pembatas yang sah.

Pengenalan Pepijat

Nampaknya pengendalian URL Go menyebabkan isu ini . Menurut spesifikasi skema URI, aksara terpelihara seperti asterisk (*) mesti dikodkan peratus untuk tujuan alternatif. Walaupun Google Drive menjana URL ubah hala dengan betul, pelaksanaan Go mungkin tidak mengendalikan aksara tempah yang dikodkan seperti yang dijangkakan.

Kesimpulan

Isu ini timbul disebabkan oleh potensi pepijat dalam kedua-dua Logik ubah hala Google Drive atau pengendalian URL Go. Siasatan lanjut diperlukan untuk menentukan punca sebenar dan menentukan pihak yang bertanggungjawab. Walau bagaimanapun, penyelesaian yang disediakan dalam penyelesaian yang disediakan membolehkan muat turun fail berjaya dari Google Drive.

Atas ialah kandungan terperinci Mengapa Memuat Turun Fail Google Drive Awam dalam Go Menghasilkan Fail Kosong?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn