You need to enable JavaScript to run this app.
Torch Object Storage

Torch Object Storage

Copy page
Download PDF
Pre-signature Mechanism
Presigned POST Form (Go SDK)
Copy page
Download PDF
Presigned POST Form (Go SDK)
This article presents example code for POST form presigning.​
Sample Code​
​
package main​
​
import (​
"context"​
"fmt"​
​
"github.com/volcengine/ve-tos-golang-sdk/v2/tos"​
)​
​
func checkErr(err error) {​
if err != nil {​
if serverErr, ok := err.(*tos.TosServerError); ok {​
fmt.Println("Error:", serverErr.Error())​
fmt.Println("Request ID:", serverErr.RequestID)​
fmt.Println("Response Status Code:", serverErr.StatusCode)​
fmt.Println("Response Header:", serverErr.Header)​
fmt.Println("Response Err Code:", serverErr.Code)​
fmt.Println("Response Err Msg:", serverErr.Message)​
} else {​
fmt.Println("Error:", err)​
}​
panic(err)​
}​
}​
​
func main() {​
var (​
accessKey = os.Getenv("TOS_ACCESS_KEY")​
secretKey = os.Getenv("TOS_SECRET_KEY")​
​
endpoint = "https://tos-cn-beijing.volces.com"​
region = "cn-beijing"​
​
bucketName = "*** Provide your bucket name ***"​
​
objectKey = "*** Provide your object key ***"​
ctx = context.Background()​
)​
​
client, err := tos.NewClientV2(endpoint, tos.WithRegion(region), tos.WithCredentials(tos.NewStaticCredentials(accessKey, secretKey)))​
checkErr(err)​
​
​
res, err := client.PreSignedPostSignature(ctx, &tos.PreSingedPostSignatureInput{​
Bucket: bucketName,​
Key: objectKey,​
Expires: 3600,​
})​
fmt.Println("Policy:", res.Policy)​
fmt.Println("OriginPolicy:", res.OriginPolicy)​
fmt.Println("Algorithm:", res.Algorithm)​
fmt.Println("Credential:", res.Credential)​
fmt.Println("Date:", res.Date)​
fmt.Println("Signature:", res.Signature)​
}​
​
Relevant Documentation​
For detailed information on POST form presigning, see Including a signature in browser-based upload forms.​
Last updated: 2025.09.19 17:30:18