public void TestInitialize() { this.config = new BceClientConfiguration(); this.config.Credentials = new DefaultBceCredentials(this.ak, this.sk); this.config.Endpoint = this.endpoint; this.client = new StsClient(this.config); }
public void TestInitialize() { this.config = new BceClientConfiguration(); this.config.Credentials = new DefaultBceCredentials("d154df3e2ac44e53b566db53ec644a7e", "2e8445d62bc84011991b4306b91f19f8"); this.config.Endpoint = "http://10.107.37.40:8586"; this.client = new StsClient(this.config); }
public static BosClient CreateBosClient(Settings settings) { BceClientConfiguration clientConfig = new BceClientConfiguration(); clientConfig.Credentials = new DefaultBceCredentials(settings.AccessKey, settings.SecretAccessKey); clientConfig.Endpoint = settings.EndPoint; return(new BosClient(clientConfig)); }
public void TestRequestWithInvalidCredential() { BceClientConfiguration bceClientConfiguration = new BceClientConfiguration(); bceClientConfiguration.Credentials = new DefaultBceCredentials("test", "test"); bceClientConfiguration.Endpoint = this.endpoint; this.client = new BosClient(bceClientConfiguration); this.client.ListBuckets(); }
public BosOpenStorageService(OssConfig config) { if (config == null) { throw new ArgumentNullException("config can not be null!"); } _ossConfig = config; _clientConfiguration = new BceClientConfiguration(); _clientConfiguration.Credentials = new DefaultBceCredentials(config.AccessID, config.AccessKey); _clientConfiguration.Endpoint = config.EndPoint; _bosClient = new BosClient(_clientConfiguration); }
private static BosClient GenerateBosClient() { const string accessKeyId = "your-access-key-id"; // 用户的Access Key ID const string secretAccessKey = "your-secret-access-key"; // 用户的Secret Access Key const string endpoint = "domain-name"; // 指定BOS服务域名 // 初始化一个BosClient BceClientConfiguration config = new BceClientConfiguration(); config.Credentials = new DefaultBceCredentials(accessKeyId, secretAccessKey); config.Endpoint = endpoint; return(new BosClient(config)); }
/** * 获取单例的配置 * * */ public static BceClientConfiguration GetBceClientConfiguration() { lock (BceClientConfiguration_Lock) { if (config == null) { config = new BceClientConfiguration(); config.Credentials = new DefaultBceCredentials(BosConfig.AccessKeyId, BosConfig.AccessKey); config.Endpoint = BosConfig.Endpoint; } } return(config); }
public void TestPublicReadWrite() { string objectKey = "objectPublicReadWrite"; string data = "dataPublicReadWrite"; this.client.SetBucketAcl(this.bucketName, BosConstants.CannedAcl.PublicReadWrite); GetBucketAclResponse response = this.client.GetBucketAcl(this.bucketName); Assert.AreEqual(response.Owner.Id, this.grantee.Id); List <Grant> grants = new List <Grant>(); List <Grantee> granteeOwner = new List <Grantee>(); granteeOwner.Add(this.grantee); List <string> permissionOwner = new List <string>(); permissionOwner.Add(BosConstants.Permission.FullControl); grants.Add(new Grant() { Grantee = granteeOwner, Permission = permissionOwner }); List <Grantee> granteeAnonymous = new List <Grantee>(); granteeAnonymous.Add(this.anonymous); List <string> permissionAnonymous = new List <string>(); permissionAnonymous.Add(BosConstants.Permission.Read); permissionAnonymous.Add(BosConstants.Permission.Write); grants.Add(new Grant() { Grantee = granteeAnonymous, Permission = permissionAnonymous }); Assert.AreEqual(response.AccessControlList.Count, grants.Count); this.client.PutObject(this.bucketName, objectKey, data); BceClientConfiguration bceClientConfiguration = new BceClientConfiguration(); bceClientConfiguration.Endpoint = this.endpoint; BosClient bosAnonymous = new BosClient(bceClientConfiguration); Assert.AreEqual( Encoding.Default.GetString(bosAnonymous.GetObjectContent(this.bucketName, objectKey)), data); bosAnonymous.PutObject(this.bucketName, "anonymous", "dataAnonymous"); Assert.AreEqual( Encoding.Default.GetString(bosAnonymous.GetObjectContent(this.bucketName, "anonymous")), "dataAnonymous"); }
/// <summary> /// 上传指定文件到百度云BOS。 /// </summary> /// <param name="file">待上传的文件</param> /// <param name="suffix">文件在云空间里的后缀</param> /// <exception cref="Exception"/> public Task Upload(string file, string suffix) { BceClientConfiguration config = new BceClientConfiguration(); config.Credentials = new DefaultBceCredentials(id, key); config.Endpoint = endpoint; if (timeout > 0) { config.ReadWriteTimeoutInMillis = timeout; } BosClient client = new BosClient(config); client.PutObject(bucket, path + suffix, new FileInfo(file)); return(Task.CompletedTask); }
/// <summary> /// Creates HttpClient method object based on the specified request and /// populates any parameters, headers, etc. from the internal request. /// </summary> /// <param name="request"> The request to convert to an HttpClient method object. </param> /// <returns> The converted HttpClient method object with any parameters, headers, etc. from the original request set. </returns> private static HttpWebRequest CreateHttpWebRequest(InternalRequest request) { BceClientConfiguration config = request.Config; IBceCredentials credentials = config.Credentials; string uri = request.Uri.AbsoluteUri; string encodedParams = HttpUtils.GetCanonicalQueryString(request.Parameters, false); if (encodedParams.Length > 0) { uri += "?" + encodedParams; } var httpWebRequest = WebRequest.Create(uri) as HttpWebRequest; httpWebRequest.Timeout = config.TimeoutInMillis ?? BceClientConfiguration.DefaultTimeoutInMillis; httpWebRequest.ReadWriteTimeout = config.ReadWriteTimeoutInMillis ?? BceClientConfiguration.DefaultReadWriteTimeoutInMillis; if (request.Range != null && request.Range.Length == 2) { AddRange(httpWebRequest, request.Range); } if (!string.IsNullOrEmpty(config.ProxyHost) && config.ProxyPort.GetValueOrDefault() > 0) { WebProxy proxy = new WebProxy(config.ProxyHost, config.ProxyPort.GetValueOrDefault()); if (config.ProxyCredentials != null) { proxy.Credentials = config.ProxyCredentials; } httpWebRequest.Proxy = proxy; } if (config.UseNagleAlgorithm != null) { httpWebRequest.ServicePoint.UseNagleAlgorithm = (bool)config.UseNagleAlgorithm; } httpWebRequest.ServicePoint.MaxIdleTime = config.MaxIdleTimeInMillis ?? BceClientConfiguration.DefaultMaxIdleTimeInMillis; httpWebRequest.ServicePoint.ConnectionLimit = config.ConnectionLimit ?? BceClientConfiguration.DefaultConnectionLimit; httpWebRequest.ServicePoint.Expect100Continue = request.Expect100Continue; httpWebRequest.Method = request.HttpMethod; return(httpWebRequest); }
public void TestInitialize() { this.bucketName = (BucketPrefix + new Random().Next().ToString("X")).ToLower(); this.owner = new User() { Id = this.userId, DisplayName = "PASSPORT:105015426" }; this.grantee = new Grantee() { Id = this.userId }; this.anonymous = new Grantee() { Id = "*" }; this.config = new BceClientConfiguration(); this.config.Credentials = new DefaultBceCredentials(this.ak, this.sk); this.config.Endpoint = this.endpoint; this.client = new BosClient(this.config); this.client.CreateBucket(this.bucketName); }
public Task <UploadResult> InvokeAsync(string uploadFileName, string savePath, byte[] uploadFileBytes) { var bosAccessKey = EditorConfig.GetString("BosAccessKey"); var bosSecretKey = EditorConfig.GetString("BosSecretKey"); var bosBucket = EditorConfig.GetString("BosBucket"); var bosEndpoint = EditorConfig.GetString("BosEndpoint"); var bosDomain = EditorConfig.GetString("BosDomain"); UploadResult result = new UploadResult() { OriginFileName = uploadFileName, State = UploadState.Unknown }; try { BceClientConfiguration clientConfig = new BceClientConfiguration(); clientConfig.Credentials = new DefaultBceCredentials(bosAccessKey, bosSecretKey); clientConfig.Endpoint = bosEndpoint; // 设置http最大连接数为10 clientConfig.ConnectionLimit = 10; // 设置tcp连接超时为5000毫秒 clientConfig.TimeoutInMillis = 5000; // 设置读写数据超时的时间为50000毫秒 clientConfig.ReadWriteTimeoutInMillis = 50000; BosClient client = new BosClient(clientConfig); client.PutObject(bosBucket, savePath, uploadFileBytes); result.Url = bosDomain + "/" + savePath; result.State = UploadState.Success; } catch (Exception e) { result.State = UploadState.FileAccessError; result.ErrorMessage = e.Message; } finally { } return(Task.FromResult(result)); }
private static void Main(string[] args) { const string accessKeyId = "your-access-key-id"; // 用户的Access Key ID const string secretAccessKey = "your-secret-access-key"; // 用户的Secret Access Key const string endpoint = "domain-name"; // 初始化一个BosClient BceClientConfiguration config = new BceClientConfiguration(); config.Credentials = new DefaultBceCredentials(accessKeyId, secretAccessKey); config.Endpoint = endpoint; // 设置HTTP最大连接数为10 config.ConnectionLimit = 10; // 设置TCP连接超时为5000毫秒 config.TimeoutInMillis = 5000; // 设置读写数据超时的时间为50000毫秒 config.ReadWriteTimeoutInMillis = 50000; BosClient client = new BosClient(config); }
/// <summary> /// 创建Bos链接客户端 /// </summary> /// <returns></returns> public BosClient GenerateBosClient() { try { if (this.bosClient == null) { // 初始化一个BosClient BceClientConfiguration config = new BceClientConfiguration(); config.Credentials = new DefaultBceCredentials(accessKey, sccretAccessKey); config.Endpoint = endpoint; bosClient = new BosClient(config); return(bosClient); } else { return(this.bosClient); } } catch (Exception) { throw; } }
/// <summary> /// Constructs a new client using the client configuration to access Sts. /// </summary> /// <param name="config"> The client configuration options controlling how this client connects to STS /// (e.g. retry counts, etc). </param> public StsClient(BceClientConfiguration config) : base(config, serviceEndpointFormat) { }
private static object BceClientConfiguration_Lock = new object(); //锁同步 public static void SetBosConfig(BosConfig val) { BosClient = null; config = null; BosConfig = val; }
public string Index(string httpMethod, string path, string queries, string headers, string policy, string sts, string callback) { string ak = "<your ak>"; string sk = "<your sk>"; BceClientConfiguration config = new BceClientConfiguration() { Credentials = new DefaultBceCredentials(ak, sk) }; string result = null; if (sts != null) { StsClient client = new StsClient(config); string accessControlList = sts; GetSessionTokenRequest request = new GetSessionTokenRequest() { DurationSeconds = 60 * 60 * 24, AccessControlList = accessControlList }; GetSessionTokenResponse response = client.GetSessionToken(request); result = JsonConvert.SerializeObject(response); } else if (policy != null) { string base64 = Convert.ToBase64String(Encoding.UTF8.GetBytes(policy)); var hash = new HMACSHA256(Encoding.UTF8.GetBytes(sk)); string signature = EncodeHex(hash.ComputeHash(Encoding.UTF8.GetBytes(base64))); result = JsonConvert.SerializeObject(new PolicySignatureResult() { policy = base64, signature = signature, accessKey = ak, }); } else { InternalRequest internalRequest = new InternalRequest(); internalRequest.Config = config; internalRequest.Uri = new Uri("http://www.baidu.com" + path); internalRequest.HttpMethod = httpMethod; if (headers != null) { internalRequest.Headers = JsonConvert.DeserializeObject <Dictionary <string, string> > (headers); } if (queries != null) { internalRequest.Parameters = JsonConvert.DeserializeObject <Dictionary <string, string> > (queries); } BceV1Signer bceV1Signer = new BceV1Signer(); string sign = bceV1Signer.Sign(internalRequest); string xbceDate = DateUtils.FormatAlternateIso8601Date(DateTime.Now); result = JsonConvert.SerializeObject(new SignatureResult() { statusCode = 200, signature = sign, xbceDate = xbceDate, }); } if (callback != null) { result = callback + "(" + result + ")"; } return(result); }
/// <summary> /// Executes the request and returns the result. /// </summary> /// <param name="request"> The BCE request to send to the remote server </param> /// <exception cref="BaiduBce.BceClientException"> If any errors are encountered on the client while making the /// request or handling the response. </exception> /// <exception cref="BaiduBce.BceServiceException"> If any errors occurred in BCE while processing the request. </exception> public HttpWebResponse Execute(InternalRequest request) { BceClientConfiguration config = request.Config; if (config.Credentials != null) { if (config.Credentials is IBceSessionCredentials) { request.Headers[BceConstants.HttpHeaders.BceSecurityToken] = (config.Credentials as IBceSessionCredentials).SessionToken; } request.Headers[BceConstants.HttpHeaders.Authorization] = config.Signer.Sign(request); } HttpWebRequest httpWebRequest = CreateHttpWebRequest(request); PopulateRequestHeaders(request, httpWebRequest); if (request.Content != null) { if (request.Content.CanSeek) { request.Content.Position = request.StartPosition; } httpWebRequest.AllowWriteStreamBuffering = false; using (Stream requestStream = WebRequestExtension.GetRequestStreamWithTimeout(httpWebRequest)) { var buffer = new byte[(int)config.SocketBufferSizeInBytes]; int bytesRead = 0; int totalBytesRead = 0; long contentLength = GetContentLengthFromInternalRequest(request); try { while ((bytesRead = request.Content.Read(buffer, 0, buffer.Length)) > 0) { if (contentLength > 0 && (bytesRead + totalBytesRead) >= contentLength) { requestStream.Write(buffer, 0, (int)(contentLength - totalBytesRead)); break; } else { requestStream.Write(buffer, 0, bytesRead); totalBytesRead += bytesRead; } } } catch (NotSupportedException e) { //a very strange phenomenon: //if bos server is down, we will receive a NotSupportedException when execute requestStream.Write(...) if (log.IsDebugEnabled) { log.Debug("error when put data.", e); } } } } try { return(WebRequestExtension.GetResponseWithTimeout(httpWebRequest) as HttpWebResponse); } catch (WebException e) { if (e.Status != WebExceptionStatus.ProtocolError) { throw e; } using (var response = e.Response as HttpWebResponse) { throw BceServiceException.CreateFromHttpWebResponse(response); } } }