getSignedUrl method
get signed url from oss server
fileKey
is the object name from oss
bucketName
is optional, we use the default bucketName as we defined in Client
expireSeconds
is optional, default expired time are 60 seconds
Implementation
@override
Future<String> getSignedUrl(
String fileKey, {
String? bucketName,
int expireSeconds = 60,
Map<String, dynamic>? params,
}) async {
final String bucket = bucketName ?? this.bucketName;
final Auth auth = await getAuth();
final int expires = DateTime.now().secondsSinceEpoch() + expireSeconds;
final String url = "https://$bucket.$endpoint/$fileKey";
final Map<String, dynamic> parameters = {
"OSSAccessKeyId": auth.accessKey,
"Expires": expires,
"Signature": auth.getSignature(expires, bucket, fileKey, params: params),
"security-token": auth.encodedToken
};
parameters.addAll(params ?? {});
final HttpRequest request = HttpRequest.get(url, parameters: parameters);
return request.url;
}