feat: implement Azure Blob Storage client and refactor configuration structure

This commit is contained in:
2026-04-21 11:03:56 -05:00
parent f2e6edd8fa
commit 09bd364976
3 changed files with 80 additions and 15 deletions

View File

@@ -7,16 +7,15 @@ import (
"math/rand"
"sync"
"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob"
"git.ksdemosapps.com/kylesoda/go-migrate/internal/app/azure"
"git.ksdemosapps.com/kylesoda/go-migrate/internal/app/config"
)
func main() {
accountKey := "Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw=="
connStr := fmt.Sprintf("DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=%s;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;", accountKey)
containerName := "pruebas"
cfg := config.App.AzureStorage
containerName := cfg.Container
// 1. Crear cliente
client, err := azblob.NewClientFromConnectionString(connStr, nil)
client, err := azure.NewClient(cfg)
if err != nil {
log.Fatalf("Error creando cliente: %v", err)
}
@@ -24,17 +23,15 @@ func main() {
var wg sync.WaitGroup
// 3. Subir archivos
for i := 1; i <= 10; i++ {
wg.Add(1)
go func(id int) {
defer wg.Done()
blobName := fmt.Sprintf("archivo-%d.txt", id)
blobName := fmt.Sprintf("%sarchivo-%d.txt", cfg.Prefix, id)
content := fmt.Sprintf("Contenido aleatorio: %d", rand.Intn(100000))
// Usamos UploadBuffer
_, err := client.UploadBuffer(ctx, containerName, blobName, []byte(content), nil)
err := client.UploadBuffer(ctx, containerName, blobName, []byte(content))
if err != nil {
log.Printf("Fallo al subir %s: %v", blobName, err)
} else {