package gcl import ( "encoding/json" "fmt" "io" "net/http" ) // List func (storage *Storage) List(path string) ([]Object, error) { // Create HTTP Request request, err := http.NewRequest("GET", fmt.Sprintf("https://%s/%s/%s", storage.endpoint, storage.zoneName, path), nil) // Handle Error if err != nil { return nil, err } // Add Headers request.Header.Add("accept", "application/json") request.Header.Add("AccessKey", storage.accessKey) // Do Request response, err := http.DefaultClient.Do(request) // Handle Error if err != nil { return nil, err } // Close Response defer response.Body.Close() // Read Body body, err := io.ReadAll(response.Body) // Handle Error if err != nil { return nil, err } // Check Response if response.StatusCode/100 != 2 { // Response Data responseData := struct { HttpCode int `json:"HttpCode"` Message string `json:"Message"` }{} // Unmarshal Body err = json.Unmarshal(body, &responseData) // Handle Error if err != nil { return nil, err } return nil, fmt.Errorf("%d : %s", responseData.HttpCode, responseData.Message) } // Response Data var responseData []Object // Unmarshal Body err = json.Unmarshal(body, &responseData) // Handle Error if err != nil { return nil, err } // Success return responseData, err }