Using a Temporary URL for Authorized Access
A temporarily authorized request is a URL temporarily authorized by specifying the AK and SK, request method, and related parameters. This URL contains authentication information and therefore you can use this URL to perform the specific operation in OBS. When the URL is being generated, you need to specify the validity period for it. All sub-classes inherited from OBSBaseRequest support temporary authentication.
The following table describes operations allowed for temporarily authorized requests.
| Operation | Class in OBS iOS SDK |
|---|---|
| PUT Bucket | OBSCreateBucketRequest |
| GET Buckets | OBSListBucketsRequest |
| DELETE Bucket | OBSDeleteBucketRequest |
| GET Objects | OBSListObjectsRequest |
| GET Object versions | OBSListObjectsVersionsRequest |
| List Multipart Uploads | OBSListMultipartUploadsRequest |
| Obtain Bucket Metadata | OBSGetBucketMetaDataRequest |
| GET Bucket location | OBSGetBucketMetaDataRequest |
| GET Bucket storageinfo | OBSGetBucketStorageInfoRequest |
| PUT Bucket quota | OBSSetBucketQuotaRequest |
| GET Bucket quota | OBSGetBucketQuotaRequest |
| PUT Bucket acl | OBSSetBucketACLWithCannedACLRequest, OBSSetBucketACLWithPolicyRequest |
| GET Bucket acl | OBSGetBucketACLRequest |
| PUT Bucket logging | OBSSetBucketLoggingRequest |
| GET Bucket logging | OBSGetBucketLoggingRequest |
| PUT Bucket policy | OBSSetBucketPolicyRequest, OBSSetBucketPolicyWithStringRequest |
| GET Bucket policy | OBSGetBucketPolicyRequest |
| DELETE Bucket policy | OBSDeleteBucketPolicyRequest |
| PUT Bucket lifecycle | OBSSetBucketLifecycleRequest |
| GET Bucket lifecycle | OBSGetBucketLifecycleRequest |
| DELETE Bucket lifecycle | OBSDeleteBucketLifecycleRequest |
| PUT Bucket website | OBSSetBucketWebsiteRequest |
| GET Bucket website | OBSGetBucketWebsiteRequest |
| DELETE Bucket website | OBSDeleteBucketWebsiteRequest |
| PUT Bucket versioning | OBSSetBucketVersioningRequest |
| GET Bucket versioning | OBSGetBucketVersioningRequest |
| PUT Bucket cors | OBSSetBucketCORSRequest |
| GET Bucket cors | OBSGetBucketCORSRequest |
| DELETE Bucket cors | OBSDeleteBucketCORSRequest |
| PUT Bucket notification | OBSSetBucketNotificationRequest |
| GET Bucket notification | OBSGetBucketNotificationRequest |
| OPTIONS Bucket | OBSOptionsBucketRequest |
| PUT Bucket tagging | OBSSetBucketTaggingRequest |
| GET Bucket tagging | OBSGetBucketTaggingRequest |
| DELETE Bucket tagging | OBSDeleteBucketTaggingRequest |
| PUT Object | OBSPutObjectWithDataRequest, OBSPutObjectWithFileRequest |
| Append Object | OBSAppendObjectWithFileRequest |
| GET Object | OBSGetObjectToDataRequest |
| PUT Object - Copy | OBSCopyObjectRequest |
| DELETE Object | OBSDeleteObjectRequest |
| DELETE Objects | OBSDeleteObjectsRequest |
| Obtain Object Metadata | OBSGetObjectMetaDataRequest |
| PUT Object acl | OBSSetObjectACLRequest |
| GET Object acl | OBSGetObjectACLRequest |
| Initiate Multipart Upload | OBSInitiateMultipartUploadRequest |
| PUT Part | OBSUploadPartWithDataRequest |
| PUT Part - Copy | OBSCopyPartRequest |
| Listing Uploaded Parts | OBSListPartsRequest |
| Complete Multipart Upload | OBSCompleteMultipartUploadRequest |
| Abort Multipart Upload | OBSAbortMultipartUploadRequest |
| OPTIONS Object | OBSOptionsObjectRequest |
| POST Object restore | OBSRestoreObjectRequest |
You can call createV2PreSignedURL to create a temporary signed URL for an authorized request. Sample code is as follows:
Listing Objects
static OBSClient *client;
NSString *endPoint = @"your-endpoint";
NSString *SK = @"*** Provide your Secret Key ***";
NSString *AK = @"*** Provide your Access Key ***";
// Initialize identity authentication.
OBSStaticCredentialProvider *credentialProvider = [[OBSStaticCredentialProvider alloc] initWithAccessKey:AK secretKey:SK];
// Initialize service configuration.
OBSServiceConfiguration *conf = [[OBSServiceConfiguration alloc] initWithURLString:endPoint credentialProvider:credentialProvider];
// Initialize an instance of OBSClient.
client = [[OBSClient alloc] initWithConfiguration:conf];
OBSListObjectsRequest *request = [[OBSListObjectsRequest alloc] initWithBucketName:@"bucketname"];
// Create a V2 authorized access URL.
[client createV2PreSignedURL:request expireAfter:3600 completionHandler:^(NSString *urlString, NSString *httpVerb, NSDictionary *signedHeaders) {
NSLog(@"%@",urlString);
}] Obtaining an Object
static OBSClient *client;
NSString *endPoint = @"your-endpoint";
NSString *SK = @"*** Provide your Secret Key ***";
NSString *AK = @"*** Provide your Access Key ***";
// Initialize identity authentication.
OBSStaticCredentialProvider *credentialProvider = [[OBSStaticCredentialProvider alloc] initWithAccessKey:AK secretKey:SK];
// Initialize service configuration.
OBSServiceConfiguration *conf = [[OBSServiceConfiguration alloc] initWithURLString:endPoint credentialProvider:credentialProvider];
// Initialize an instance of OBSClient.
client = [[OBSClient alloc] initWithConfiguration:conf];
OBSGetObjectToDataRequest *request = [[OBSGetObjectToDataRequest alloc] initWithBucketName:@"bucketname" objectKey:@"objectkey"];
// Create a V2 authorized access URL.
[client createV2PreSignedURL:request expireAfter:3600 completionHandler:^(NSString *urlString, NSString *httpVerb, NSDictionary *signedHeaders) {
NSLog(@"%@",urlString);
}] Last Article: Temporarily Authorized Access
Next Article: Versioning Management
Did this article solve your problem?
Thank you for your score!Your feedback would help us improve the website.