代码改变世界

七牛云文件上传

2017-08-30 23:42  HelenTime  阅读(1459)  评论(0编辑  收藏  举报

七牛云:错误"{\"error\":\"incorrect region, please use up-z2.qiniu.com\"}"

解决方法:添加Qiniu.Common.Config.AutoZone(access_key, bucket, true);

 

方法1
UploadFile:
 1 public string UploadFile(string keyValue)
 2 {
 3   string bucket = ConfigurationManager.AppSettings["bucket"].ToString();
 4   string access_key = ConfigurationManager.AppSettings["access_key"].ToString();
 5   string secret_key = ConfigurationManager.AppSettings["secret_key"].ToString();
 6   // 生成(上传)凭证时需要使用此Mac
 7   // 这个示例单独使用了一个Settings类,其中包含AccessKey和SecretKey
 8   // 实际应用中,请自行设置您的AccessKey和SecretKey
 9   Mac mac = new Mac(access_key, secret_key);
10   string saveKey = "1.png";
11   string localFile = "D:\\QFL\\1.png";
12   // 上传策略,参见 
13   // https://developer.qiniu.com/kodo/manual/put-policy
14   PutPolicy putPolicy = new PutPolicy();
15   // 如果需要设置为"覆盖"上传(如果云端已有同名文件则覆盖),请使用 SCOPE = "BUCKET:KEY"
16   // putPolicy.Scope = bucket + ":" + saveKey;
17   putPolicy.Scope = bucket + ":" + saveKey;
18   // 上传策略有效期(对应于生成的凭证的有效期) 
19   putPolicy.SetExpires(3600);
20   // 上传到云端多少天后自动删除该文件,如果不设置(即保持默认默认)则不删除
21   putPolicy.DeleteAfterDays = 1;
22   // 生成上传凭证,参见
23   // https://developer.qiniu.com/kodo/manual/upload-token 
24   string jstr = putPolicy.ToJsonString();
25   string token = Auth.CreateUploadToken(mac, jstr);
26   Qiniu.Common.Config.AutoZone(access_key, bucket, true);
27   UploadManager um = new UploadManager();
28   HttpResult result = um.UploadFile(localFile, saveKey, token);
29   JObject jo = (JObject)JsonConvert.DeserializeObject(result.Text);
30   var hash = jo["hash"].ToString();
31   var key = jo["key"].ToString();
32 }

 

 

方法2
UploadFile:

 public string UploadFile(string keyValue)
  {
    string bucket = ConfigurationManager.AppSettings["bucket"].ToString();
    string access_key = ConfigurationManager.AppSettings["access_key"].ToString();
    string secret_key = ConfigurationManager.AppSettings["secret_key"].ToString();

    Mac mac = new Mac(access_key, secret_key);
    PutPolicy putPolicy = new PutPolicy();
    putPolicy.Scope = bucket + ":" + saveKey;
    putPolicy.SetExpires(3600);
    string jstr = putPolicy.ToJsonString();
    string token = Auth.CreateUploadToken(mac, jstr);
    Qiniu.Common.Config.AutoZone(access_key, bucket, true);
    FormUploader fu = new FormUploader();
    HttpResult result = fu.UploadStream(files[0].InputStream, saveKey, token);
    JObject jo = (JObject)JsonConvert.DeserializeObject(result.Text);
    var hash = jo["hash"].ToString();
    var key = jo["key"].ToString();

32 }