Creating a Signed URL
API Description
You can use this API to generate a signed URL whose Query parameters are carried with authentication information, by specifying the AK and SK, HTTP method, and request parameters. A signed URL allows you to perform specific operations on OBS.
Method Definition
func (obsClient ObsClient) CreateSignedUrl(input *CreateSignedUrlInput) (output *CreateSignedUrlOutput, err error)
Request Parameter
| Field | Type | Optional or Mandatory |
|---|---|---|
| input | Mandatory |
Returned Result
| Field | Type |
|---|---|
| output | |
| err | error |
Sample Code
func main() {
// Generate a signed URL for uploading an object.
putObjectInput := &obs.CreateSignedUrlInput{}
putObjectInput.Method = obs.HttpMethodPut
putObjectInput.Bucket = "bucketname"
putObjectInput.Key = "objectkey"
putObjectInput.Expires = 3600
putObjectOutput, err := obsClient.CreateSignedUrl(putObjectInput)
if err == nil {
fmt.Printf("SignedUrl:%s\n", putObjectOutput.SignedUrl)
fmt.Printf("ActualSignedRequestHeaders:%v\n", putObjectOutput.ActualSignedRequestHeaders)
} else {
fmt.Println(err)
}
// Generate a signed URL for downloading an object.
getObjectInput := &obs.CreateSignedUrlInput{}
getObjectInput.Method = obs.HttpMethodGet
getObjectInput.Bucket = "bucketname"
getObjectInput.Key = "objectkey"
getObjectInput.Expires = 3600
getObjectOutput, err := obsClient.CreateSignedUrl(getObjectInput)
if err == nil {
fmt.Printf("SignedUrl:%s\n", getObjectOutput.SignedUrl)
fmt.Printf("ActualSignedRequestHeaders:%v\n", getObjectOutput.ActualSignedRequestHeaders)
} else {
fmt.Println(err)
}
// Generate a signed URL for deleting an object.
deleteObjectInput := &obs.CreateSignedUrlInput{}
deleteObjectInput.Method = obs.HttpMethodDelete
deleteObjectInput.Bucket = "bucketname"
deleteObjectInput.Key = "objectkey"
deleteObjectInput.Expires = 3600
deleteObjectOutput, err := obsClient.CreateSignedUrl(deleteObjectInput)
if err == nil {
fmt.Printf("SignedUrl:%s\n", deleteObjectOutput.SignedUrl)
fmt.Printf("ActualSignedRequestHeaders:%v\n", deleteObjectOutput.ActualSignedRequestHeaders)
} else {
fmt.Println(err)
}
} Last Article: Other APIs
Next Article: Resumable Upload
Did this article solve your problem?
Thank you for your score!Your feedback would help us improve the website.