Exemplo n.º 1
0
        /// <summary>
        ///     上传文件
        /// </summary>
        /// <param name="accessKey"></param>
        /// <param name="secretKey"></param>
        /// <param name="bucket"></param>
        /// <param name="file"></param>
        /// <param name="name">文件名</param>
        /// <returns></returns>
        public async Task <PutRet> UploadFile(string accessKey,
                                              string secretKey,
                                              string bucket,
                                              StorageFile file,
                                              string name = null)
        {
            Mac       mac       = new Mac(accessKey, Config.Encoding.GetBytes(secretKey));
            PutPolicy putPolicy = new PutPolicy();

            putPolicy.Scope = bucket;
            putPolicy.SetExpires(3600);

            string uploadToken = mac.CreateUploadToken(putPolicy);

            Stream stream = await file.OpenStreamForReadAsync();

            var ret = await new IOClient().Put(uploadToken, name, stream, new PutExtra());

            stream.Dispose();

            return(ret);
        }