загрузка файла хранения Google - PullRequest
1 голос
/ 02 февраля 2020

Народ, Почему это важно, как загружается общедоступный объект, который хранится в Google Storage Bucket?

https://storage.cloud.google.com/convertedexcelfiles/test.png

Использование таких инструментов, как wget или curl ... кажется искажать файл.

$ wget https://storage.cloud.google.com/convertedexcelfiles/test.png

...
$ ls -all -h
56K Feb  2 01:32 test.png

То же самое относится и к доверенным:

package main

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

func main() {

    fileUrl := "https://storage.cloud.google.com/convertedexcelfiles/test.png"

    if err := DownloadFile("test.png", fileUrl); err != nil {
        panic(err)
    }
}

// DownloadFile will download a url to a local file. It's efficient because it will
// write as it downloads and not load the whole file into memory.
func DownloadFile(filepath string, url string) error {

    // Get the data
    resp, err := http.Get(url)
    if err != nil {
        return err
    }
    defer resp.Body.Close()

    // Create the file
    out, err := os.Create(filepath)
    if err != nil {
        return err
    }
    defer out.Close()

    // Write the body to file
    _, err = io.Copy(out, resp.Body)
    return err
}

Единственный способ, который кажется надежным, - это использовать gsutil или перейти к консоли gcp. Мысли?

Возможно ли, потому что он возвращает 302?

curl -I https://storage.cloud.google.com/convertedexcelfiles/test.png                                                                                                        ~/Downloads/transforms/tmp
HTTP/2 302
content-type: application/binary
location: https://accounts.google.com/ServiceLogin?service=cds&passive=1209600&continue=https://storage.cloud.google.com/convertedexcelfiles/test.png&followup=https://storage.cloud.google.com/convertedexcelfiles/test.png
content-length: 0
date: Sun, 02 Feb 2020 06:33:13 GMT
server: ESF
x-xss-protection: 0
x-frame-options: SAMEORIGIN
x-content-type-options: nosniff
alt-svc: quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000

Как получить надежную ссылку, если это так?

1 Ответ

3 голосов
/ 02 февраля 2020

Как любезно отметили люди, содержимое файла было html .... После более тщательного изучения становится очевидным следующее:

Не используйте URL в поле здесь: dont use

Но достаточно щелкнуть правой кнопкой мыши Publi c: use

Как видите, 2 URL-адреса немного разные.

https://storage.cloud.google.com/convertedexcelfiles/test.png https://storage.googleapis.com/convertedexcelfiles/test.png

Второй работает ... У меня странное ощущение, что другие, менее технически подкованные Ужасно провести время с этим. В 3 часа ночи это приводило в бешенство. Я должен был просто перехватить файл ... но кто бы мог этого ожидать! Отличная работа на пользовательском интерфейсе Google ... черт возьми?

...