tencent cloud

All product documents
Cloud Object Storage
Generating a Pre-Signed URL
Last updated: 2024-02-02 14:40:45
Generating a Pre-Signed URL
Last updated: 2024-02-02 14:40:45

Overview

This document provides an overview of SDK code samples related to generating pre-signed object URLs.
For details about how to use a pre-signed URL for uploads, see Upload via Pre-Signed URL. For details about how to use a pre-signed URL for downloads, see Download via Pre-Signed URL.
Note:
To learn about signature rules, see Request Signature.
You are advised to use a temporary key to generate pre-signed URLs for the security of your requests such as uploads and downloads. When you apply for a temporary key, follow the Principle of Least Privilege to avoid leaking resources besides your buckets and objects.
If you need to use a permanent key to generate a pre-signed URL, you are advised to limit the permission of the permanent key to uploads and downloads only to avoid risks.

Generating a Pre-Signed URL for Downloading Objects

Feature description

This API is used to generate a pre-signed URL for downloading COS objects.

Sample code

// Bucket name in the format of `BucketName-APPID` (`APPID` is required), which can be viewed in the COS console at https://console.cloud.tencent.com/cos5/bucket.
String bucket = "examplebucket-1250000000";
// The location of the object in the bucket, i.e., the object key
String cosPath = "exampleobject";
HashMap<String, String> parameters = HashMap();
parameters["test1k"] = "test1v";
parameters["test2k"] = "test2v";
try {
// Get a pre-signed URL for downloading objects
String objectUrl = await Cos().getDefaultService().getPresignedUrl(
bucket,
cosPath,
parameters: parameters
);
} catch (e) {
// An exception will be reported in case of failure. Process the business logic accordingly.
print(e);
}

Parameter description

Parameter
Description
Type
Required
bucket
Bucket name, formatted as BucketName-APPID. For more information, see Bucket Overview.
String
Yes
cosPath
Object key, the unique identifier of an object in a bucket. For example, if the object endpoint is examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/picture.jpg, its object key is doc/picture.jpg
String
Yes
signValidTime
Signature validity period, in seconds. Note that this is the signature validity period. You need to ensure the key validity period by yourself.
Int
No
signHost
Whether to include the Host header in the signature. You can choose not to include it, but the request may fail or vulnerabilities may occur.
Bool
No
parameters
HTTP request parameters, which should be the same as those passed to the actual request. This can prevent users from tampering with the HTTP request parameters.
Map
No

Response description

Success: A pre-signed URL for downloading objects is returned.
Failure: An error occurs (such as authentication failure), with a CosXmlClientException or CosXmlServiceException exception reported. For more information, see Troubleshooting.
Was this page helpful?
You can also Contact Sales or Submit a Ticket for help.
Yes
No

Feedback

Contact Us

Contact our sales team or business advisors to help your business.

Technical Support

Open a ticket if you're looking for further assistance. Our Ticket is 7x24 avaliable.

7x24 Phone Support
Hong Kong, China
+852 800 906 020 (Toll Free)
United States
+1 844 606 0804 (Toll Free)
United Kingdom
+44 808 196 4551 (Toll Free)
Canada
+1 888 605 7930 (Toll Free)
Australia
+61 1300 986 386 (Toll Free)
EdgeOne hotline
+852 300 80699
More local hotlines coming soon