More management tools
Some checks failed
CI / Test (1.22) (push) Failing after -30m28s
CI / Lint (push) Failing after -30m32s
CI / Build (push) Failing after -30m31s
CI / Test (1.23) (push) Failing after -30m31s

This commit is contained in:
2026-03-04 22:30:40 +02:00
parent 4a716bb82d
commit 4b44340c58
25 changed files with 3094 additions and 230 deletions

View File

@@ -8,6 +8,8 @@ import (
"io"
"mime/multipart"
"net/http"
"net/textproto"
"strings"
)
// UploadMedia uploads a media file to Meta and returns the media ID.
@@ -26,8 +28,16 @@ func (c *Client) uploadMedia(ctx context.Context, data []byte, mimeType string)
var requestBody bytes.Buffer
writer := multipart.NewWriter(&requestBody)
// Add the file
part, err := writer.CreateFormFile("file", "media")
if strings.TrimSpace(mimeType) == "" {
mimeType = "application/octet-stream"
}
// Add the file with explicit MIME type so Meta does not treat it as octet-stream.
fileHeader := make(textproto.MIMEHeader)
fileHeader.Set("Content-Disposition", `form-data; name="file"; filename="media"`)
fileHeader.Set("Content-Type", mimeType)
part, err := writer.CreatePart(fileHeader)
if err != nil {
return "", fmt.Errorf("failed to create form file: %w", err)
}