public HttpResult copy(string srcBucket, string srcKey, string destBucket, string destKey) { HttpResult copyResult = null; string url = string.Format("{0}{1}", Config.RS_HOST, copyOp(srcBucket, srcKey, destBucket, destKey)); string token = Auth.createManageToken(url, null, this.mac); HttpManager httpManager = new HttpManager(); httpManager.setAuthHeader(token); httpManager.CompletionHandler = new CompletionHandler(delegate(ResponseInfo respInfo, string response) { copyResult = new HttpResult(); copyResult.Response = response; copyResult.ResponseInfo = respInfo; }); httpManager.post(url); return copyResult; }
/// <summary> /// 删除 指定文件 /// </summary> /// <param name="fileUri"></param> /// <returns></returns> public static bool DeletePrivateFile(string bucket, string fileName) { Mac mac = new Mac(Settings.AccessKey, Settings.SecretKey); string key = fileName; BucketManager bm = new BucketManager(mac); Qiniu.Http.HttpResult delete = bm.Delete(bucket, fileName); if (delete.Code == (int)HttpCode.OK) { return(true); } else { return(false); } }
public HttpResult delete(string bucket, string key) { HttpResult deleteResult = null; string url = string.Format("{0}{1}", Config.RS_HOST, deleteOp(bucket, key)); string token = Auth.createManageToken(url, null, this.mac); HttpManager httpManager = new HttpManager(); httpManager.setAuthHeader(token); httpManager.CompletionHandler = new CompletionHandler(delegate(ResponseInfo respInfo, string response) { deleteResult = new HttpResult(); deleteResult.Response = response; deleteResult.ResponseInfo = respInfo; }); httpManager.post(url); return deleteResult; }
/// <summary> /// 下载私有空间中的文件 /// </summary> /// <param name="rawUrl">要下载的文件url</param> /// <param name="savePath">保存到的路径</param> /// <returns>文件全路径</returns> public static async Task <string> DownloadPrivateFileAsync(string rawUrl, string savePath) { var s = savePath.Substring(savePath.Length - 1, 1); if ("/".Equals(s) || "\\".Equals(s)) { savePath += Path.GetFileName(rawUrl); } else { savePath += "/" + Path.GetFileName(rawUrl); } // 这个示例单独使用了一个Settings类,其中包含AccessKey和SecretKey // 实际应用中,请自行设置您的AccessKey和SecretKey Mac mac = new Mac(Settings.AccessKey, Settings.SecretKey); /*string rawUrl = "http://your-bucket.bkt.clouddn.com/1.jpg"; * string savePath = "D:\\QFL\\saved-1.jpg";*/ // 设置下载链接有效期3600秒 int expireInSeconds = 3600; string accUrl = DownloadManager.CreateSignedUrl(mac, rawUrl, expireInSeconds); if (File.Exists(savePath)) { File.Delete(savePath); } // 接下来可以使用accUrl来下载文件 Qiniu.Http.HttpResult result = await DownloadManager.DownloadAsync(accUrl, savePath); Console.WriteLine(result); if (result.Code == (int)HttpCode.OK) { return(savePath); } throw new Exception("下载文件出错!"); }
public HttpResult updateLifecycle(string bucket,string key,int deleteAfterDays) { HttpResult updateResult = null; string updateUrl = string.Format("{0}{1}", Config.ZONE.RsHost, updateLifecycleOp(bucket, key, deleteAfterDays)); string accessToken = Auth.createManageToken(updateUrl, null, this.mac); Dictionary<string, string> updateHeaders = new Dictionary<string, string>(); updateHeaders.Add("Authorization", accessToken); CompletionHandler updateCompletionHandler = new CompletionHandler(delegate (ResponseInfo respInfo, string response) { updateResult = new HttpResult(); updateResult.Response = response; updateResult.ResponseInfo = respInfo; }); this.mHttpManager.postForm(updateUrl, updateHeaders, null, updateCompletionHandler); return updateResult; }
// ADD 'force' param // 2016-08-22 14:58 @fengyh public HttpResult move(string srcBucket, string srcKey, string destBucket, string destKey, bool force) { HttpResult moveResult = null; string moveUrl = string.Format("{0}{1}", Config.ZONE.RsHost, moveOp(srcBucket, srcKey, destBucket, destKey, force)); string accessToken = Auth.createManageToken(moveUrl, null, this.mac); Dictionary<string, string> moveHeaders = new Dictionary<string, string>(); moveHeaders.Add("Authorization", accessToken); CompletionHandler moveCompletionHandler = new CompletionHandler(delegate(ResponseInfo respInfo, string response) { moveResult = new HttpResult(); moveResult.Response = response; moveResult.ResponseInfo = respInfo; }); this.mHttpManager.postForm(moveUrl, moveHeaders, null, moveCompletionHandler); return moveResult; }
public HttpResult delete(string bucket, string key) { HttpResult deleteResult = null; string deleteUrl = string.Format("{0}{1}", Config.ZONE.RsHost, deleteOp(bucket, key)); string accessToken = Auth.createManageToken(deleteUrl, null, this.mac); Dictionary<string, string> deleteHeaders = new Dictionary<string, string>(); deleteHeaders.Add("Authorization", accessToken); CompletionHandler deleteCompletionHandler = new CompletionHandler(delegate(ResponseInfo respInfo, string response) { deleteResult = new HttpResult(); deleteResult.Response = response; deleteResult.ResponseInfo = respInfo; }); this.mHttpManager.postForm(deleteUrl, deleteHeaders, null, deleteCompletionHandler); return deleteResult; }
public HttpResult copy(string srcBucket, string srcKey, string destBucket, string destKey) { HttpResult copyResult = null; string copyUrl = string.Format("{0}{1}", Config.ZONE.RsHost, copyOp(srcBucket, srcKey, destBucket, destKey)); string accessToken = Auth.createManageToken(copyUrl, null, this.mac); Dictionary<string, string> copyHeaders = new Dictionary<string, string>(); copyHeaders.Add("Authorization", accessToken); CompletionHandler copyCompletionHandler = new CompletionHandler(delegate(ResponseInfo respInfo, string response) { copyResult = new HttpResult(); copyResult.Response = response; copyResult.ResponseInfo = respInfo; }); this.mHttpManager.postForm(copyUrl, copyHeaders, null, copyCompletionHandler); return copyResult; }
public HttpResult chgm(string bucket, string key, string mimeType) { HttpResult chgmResult = null; string chgmUrl = string.Format("{0}{1}", Config.ZONE.RsHost, chgmOp(bucket, key, mimeType)); string accessToken = Auth.createManageToken(chgmUrl, null, this.mac); Dictionary<string, string> chgmHeaders = new Dictionary<string, string>(); chgmHeaders.Add("Authorization", accessToken); CompletionHandler chgmCompletionHandler = new CompletionHandler(delegate(ResponseInfo respInfo, string response) { chgmResult = new HttpResult(); chgmResult.Response = response; chgmResult.ResponseInfo = respInfo; }); this.mHttpManager.postForm(chgmUrl, chgmHeaders, null, chgmCompletionHandler); return chgmResult; }
/// <summary> /// 上传(来自网络回复的)数据流 /// </summary> public static string UpLoadStream(Stream _stream, string _saveKey) { _saveKey += ".jpg"; //保存格式 string result_string = _QiNiuUrl + _saveKey; //if (Stat(_saveKey)) //{ // return result_string; //} // 生成(上传)凭证时需要使用此Mac // 这个示例单独使用了一个Settings类,其中包含AccessKey和SecretKey // 实际应用中,请自行设置您的AccessKey和SecretKey Mac mac = new Mac(_AccessKey, _SecretKey); string bucket = _bucket; string saveKey = _saveKey; // 上传策略,参见 // https://developer.qiniu.com/kodo/manual/put-policy PutPolicy putPolicy = new PutPolicy(); // 如果需要设置为"覆盖"上传(如果云端已有同名文件则覆盖),请使用 SCOPE = "BUCKET:KEY" putPolicy.Scope = bucket + ":" + saveKey; //putPolicy.Scope = bucket; // 上传策略有效期(对应于生成的凭证的有效期) putPolicy.SetExpires(3600); // 上传到云端多少天后自动删除该文件,如果不设置(即保持默认默认)则不删除 putPolicy.DeleteAfterDays = 1; // 生成上传凭证,参见 // https://developer.qiniu.com/kodo/manual/upload-token string jstr = putPolicy.ToJsonString(); string token = Auth.CreateUploadToken(mac, jstr); try { string url = "http://img.ivsky.com/img/tupian/pre/201610/09/beifang_shanlin_xuejing-001.jpg"; var wReq = System.Net.WebRequest.Create(url) as System.Net.HttpWebRequest; var resp = wReq.GetResponse() as System.Net.HttpWebResponse; //using (var stream = resp.GetResponseStream()) using (var stream = _stream) { // 请不要使用UploadManager的UploadStream方法,因为此流不支持查找(无法获取Stream.Length) // 请使用FormUploader或者ResumableUploader的UploadStream方法 FormUploader fu = new FormUploader(); Qiniu.Http.HttpResult result = fu.UploadStream(stream, saveKey, token); //代表上传成功 if (result.Code.ToString().Trim() == "200") { return(result_string); } else { return(null); } } } catch (Exception ex) { return(result_string); } }