internal IDictionary <string, object> GetMetaData(FileState state, Stream data) { IDictionary <string, object> rtn = new Dictionary <string, object>(); if (state.MetaData != null) { foreach (var meta in state.MetaData) { rtn.Add(meta.Key, meta.Value); } } MergeDic(rtn, "mime_type", AVFile.GetMIMEType(state.Name)); MergeDic(rtn, "size", data.Length); MergeDic(rtn, "_checksum", GetMD5Code(data)); if (AVUser.CurrentUser != null) { if (AVUser.CurrentUser.ObjectId != null) { MergeDic(rtn, "owner", AVUser.CurrentUser.ObjectId); } } //if (this.IsExternal) //{ // MergeDic(rtn, "__source", "external"); //} return(rtn); }
internal static Task <Tuple <HttpStatusCode, IDictionary <string, object> > > GetFileToken(FileState fileState, CancellationToken cancellationToken) { Task <Tuple <HttpStatusCode, IDictionary <string, object> > > rtn; string currentSessionToken = AVUser.CurrentSessionToken; string str = fileState.Name; IDictionary <string, object> parameters = new Dictionary <string, object>(); parameters.Add("name", str); parameters.Add("key", GetUniqueName(fileState)); parameters.Add("__type", "File"); parameters.Add("mime_type", AVFile.GetMIMEType(str)); parameters.Add("metaData", fileState.MetaData); rtn = AVClient.RequestAsync("POST", new Uri("/fileTokens", UriKind.Relative), currentSessionToken, parameters, cancellationToken); return(rtn); }
internal Task <Tuple <HttpStatusCode, IDictionary <string, object> > > GetQiniuToken(FileState state, CancellationToken cancellationToken) { Task <Tuple <HttpStatusCode, IDictionary <string, object> > > rtn; string currentSessionToken = AVUser.CurrentSessionToken; string str = state.Name; IDictionary <string, object> parameters = new Dictionary <string, object>(); parameters.Add("name", str); parameters.Add("key", state.CloudName); parameters.Add("__type", "File"); parameters.Add("mime_type", AVFile.GetMIMEType(str)); state.MetaData = GetMetaData(state, state.frozenData); parameters.Add("metaData", state.MetaData); rtn = AVClient.RequestAsync("POST", new Uri("qiniu", UriKind.Relative), currentSessionToken, parameters, cancellationToken); return(rtn); }