Spaces:
Runtime error
Runtime error
Download utils/cloudinary_util.go from XRyZ/test-SiLaju: direct link, hf CLI and curl.
- Browser
- Download file 1.23 kB
-
https://huggingface.co/spaces/XRyZ/test-SiLaju/resolve/main/utils/cloudinary_util.go
- Command line
-
hf download hf://spaces/XRyZ/test-SiLaju/utils/cloudinary_util.go
-
curl -L -o cloudinary_util.go https://huggingface.co/spaces/XRyZ/test-SiLaju/resolve/main/utils/cloudinary_util.go
1.23 kB
| package utils | |
| import ( | |
| "context" | |
| "fmt" | |
| "mime/multipart" | |
| "os" | |
| "github.com/cloudinary/cloudinary-go/v2" | |
| "github.com/cloudinary/cloudinary-go/v2/api" | |
| "github.com/cloudinary/cloudinary-go/v2/api/uploader" | |
| ) | |
| type CloudinaryClient struct { | |
| cld *cloudinary.Cloudinary | |
| } | |
| func NewCloudinaryClient() (*CloudinaryClient, error) { | |
| cloudName := os.Getenv("CLOUDINARY_CLOUD_NAME") | |
| apiKey := os.Getenv("CLOUDINARY_API_KEY") | |
| apiSecret := os.Getenv("CLOUDINARY_API_SECRET") | |
| cld, err := cloudinary.NewFromParams(cloudName, apiKey, apiSecret) | |
| if err != nil { | |
| return nil, err | |
| } | |
| return &CloudinaryClient{cld: cld}, nil | |
| } | |
| func (c *CloudinaryClient) UploadImage(file multipart.File, reportID string, longitude, latitude float64, description string) (string, error) { | |
| ctx := context.Background() | |
| contextData := api.CldAPIMap{ | |
| "Id": reportID, | |
| "description": description, | |
| "latitude": fmt.Sprintf("%.6f", latitude), | |
| "longitude": fmt.Sprintf("%.6f", longitude), | |
| } | |
| uploadParams := uploader.UploadParams{ | |
| PublicID: reportID, | |
| Folder: "reports", | |
| Context: contextData, | |
| } | |
| result, err := c.cld.Upload.Upload(ctx, file, uploadParams) | |
| if err != nil { | |
| return "", err | |
| } | |
| return result.SecureURL, nil | |
| } | |