Dieses Kapitel stellt die Methoden für den Datei-Upload und -Download unter Verwendung der Go Resty-Bibliothek vor.

Mehrteiliger Datei-Upload

Laden Sie Dateien über einen mehrteiligen POST-Request hoch

// Lesen Sie zuerst zwei Dateien ein
profilImgBytes, _ := os.ReadFile("/Users/jeeva/test-img.png")
notizenBytes, _ := os.ReadFile("/Users/jeeva/text-file.txt")

// Erstellen Sie einen Resty-Client
client := resty.New()

// Verwenden Sie SetFileReader, um die Datei und Parameter automatisch für den Upload festzulegen
// Verwenden Sie SetFormData, um andere Formularparameter festzulegen
resp, err := client.R().
      SetFileReader("profil_img", "test-img.png", bytes.NewReader(profilImgBytes)).
      SetFileReader("notizen", "text-file.txt", bytes.NewReader(notizenBytes)).
      SetFormData(map[string]string{
          "vorname": "Jeevanandam",
          "nachname": "M",
      }).
      Post("http://www.tizi365.com/upload")

Direktes Hochladen lokaler Dateien

Dies ist bequemer als oben, da es direkt lokale Dateien hochladen kann, ohne die Datei zuerst lesen zu müssen.

// Erstellen Sie einen Resty-Client
client := resty.New()

// Verwenden Sie SetFile, um die hochzuladende Datei und das gebundene Anforderungsfeld festzulegen
resp, err := client.R().
      SetFile("profil_img", "/Users/jeeva/test-img.png").
      Post("http://myapp.com/upload")

// Stapelweise Dateien hochladen mit SetFiles
resp, err := client.R().
      SetFiles(map[string]string{
        "profil_img": "/Users/jeeva/test-img.png",
        "notizen": "/Users/jeeva/text-file.txt",
      }).
      Post("http://myapp.com/upload")

// Stapelweise Dateien hochladen und gleichzeitig andere Formularparameter festlegen
resp, err := client.R().
      SetFiles(map[string]string{
        "profil_img": "/Users/jeeva/test-img.png",
        "notizen": "/Users/jeeva/text-file.txt",
      }).
      SetFormData(map[string]string{
        "vorname": "Jeevanandam",
        "nachname": "M",
        "PLZ": "00001",
        "Stadt": "meine Stadt",
        "Zugriffs_token": "C6A79608-782F-4ED0-A11D-BD82FAD829CD",
      }).
      Post("http://myapp.com/profil")

Dateien herunterladen

// Erstellen Sie einen Resty-Client
client := resty.New()

// Legen Sie das Ausgabeverzeichnis für Dateien fest. Resty erstellt es automatisch, wenn es nicht vorhanden ist
// Diese Einstellung ist optional, wenn der SetOutput-Parameter mit einem absoluten Pfad festgelegt ist.
client.SetOutputDirectory("/Users/tizi365/Downloads")

// Senden Sie hier eine HTTP-Anforderung und speichern Sie das Anfrageergebnis im durch SetOutput festgelegten Dateipfad
_, err := client.R().
          SetOutput("plugin/ReplyWithHeader-v5.1-beta.zip").
          Get("http://bit.ly/1LouEKr")

// Hier ist ein Beispiel für die Verwendung eines absoluten Pfads
_, err := client.R().
          SetOutput("/MyDownloads/plugin/ReplyWithHeader-v5.1-beta.zip").
          Get("http://bit.ly/1LouEKr")