2025-05-09 23:22:24 +02:00
|
|
|
package hcloudimages_test
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"context"
|
|
|
|
|
"fmt"
|
|
|
|
|
"net/url"
|
|
|
|
|
|
|
|
|
|
"github.com/hetznercloud/hcloud-go/v2/hcloud"
|
|
|
|
|
|
|
|
|
|
"github.com/apricote/hcloud-upload-image/hcloudimages"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func ExampleClient_Upload() {
|
|
|
|
|
client := hcloudimages.NewClient(
|
|
|
|
|
hcloud.NewClient(hcloud.WithToken("<your token>")),
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
imageURL, err := url.Parse("https://example.com/disk-image.raw.bz2")
|
|
|
|
|
if err != nil {
|
|
|
|
|
panic(err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
image, err := client.Upload(context.TODO(), hcloudimages.UploadOptions{
|
|
|
|
|
ImageURL: imageURL,
|
|
|
|
|
ImageCompression: hcloudimages.CompressionBZ2,
|
|
|
|
|
Architecture: hcloud.ArchitectureX86,
|
2025-12-22 13:36:50 +01:00
|
|
|
Location: &hcloud.Location{Name: "nbg1"}, // Optional: defaults to fsn1
|
2025-05-09 23:22:24 +02:00
|
|
|
})
|
|
|
|
|
if err != nil {
|
|
|
|
|
panic(err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fmt.Printf("Uploaded Image: %d", image.ID)
|
|
|
|
|
}
|