1234567891011121314151617181920212223242526272829303132333435363738394041 |
-
- using System;
- using Aliyun.OSS.Common.Authentication;
- using Aliyun.OSS.Common.Communication;
- using Aliyun.OSS.Util;
- namespace Aliyun.OSS.Util
- {
- internal class OssRequestSigner : IRequestSigner
- {
- private readonly string _resourcePath;
- public OssRequestSigner(String resourcePath)
- {
- _resourcePath = resourcePath;
- }
-
- public void Sign(ServiceRequest request, ICredentials credentials)
- {
- var accessKeyId = credentials.AccessKeyId;
- var accessKeySecret = credentials.AccessKeySecret;
- var httpMethod = request.Method.ToString().ToUpperInvariant();
-
-
- var resourcePath = _resourcePath;
- if (!string.IsNullOrEmpty(accessKeySecret))
- {
- var canonicalString = SignUtils.BuildCanonicalString(httpMethod, resourcePath, request);
- var signature = ServiceSignature.Create().ComputeSignature(accessKeySecret, canonicalString);
-
- request.Headers.Add(HttpHeaders.Authorization, "OSS " + accessKeyId + ":" + signature);
- }
- }
- }
- }
|