示例#1
0
        public static HttpResult ReadFilePart(string file, long offset, long size)
        {
            try
            {
                if (string.IsNullOrWhiteSpace(file))
                {
                    throw new ArgumentNullException("file");
                }
                if (null == GetStatus(file))
                {
                    return new HttpResult()
                           {
                               Code     = -1,
                               ErrorLog = "File Not Exist."
                           }
                }
                ;

                string args     = string.Format("&offset={0}&length={1}", offset, size);
                string url      = BuildUrl(file, WebHdfsAPI.OPEN, "user.name=hadoop&noredirect=false" + args);
                string redirUrl = HttpClientHelperV45.GetRedirectedURL(url, HttpMethod.GET);
                if (!string.IsNullOrWhiteSpace(redirUrl))
                {
                    url = TranslateHostname(redirUrl);
                }
                return(HttpClientHelperV45.Request(url, new TimeSpan(0, 0, 6)));
            }
            catch (Exception ex)
            {
                DebugHelper.OutLog("获取HDFS文件失败:" + ex.Message);
                DebugHelper.Error(ex, ex.Message);
                return(null);
            }
        }
示例#2
0
 /// <summary>
 /// 下载HDFS文件
 /// </summary>
 /// <param name="file">文件名</param>
 /// <returns></returns>
 public static byte[] GetFile(string file)
 {
     try
     {
         if (string.IsNullOrWhiteSpace(file))
         {
             throw new ArgumentNullException("file");
         }
         if (null == GetStatus(file))
         {
             return(Encoding.UTF8.GetBytes("File Not Exist."));
         }
         string url      = BuildUrl(file, WebHdfsAPI.OPEN, "user.name=atlas&noredirect=false");
         string redirUrl = HttpClientHelperV45.GetRedirectedURL(url, HttpMethod.GET);
         if (!string.IsNullOrWhiteSpace(redirUrl))
         {
             url = TranslateHostname(redirUrl);
         }
         HttpResult res = HttpClientHelperV45.Request(url, new TimeSpan(1, 0, 0));
         if (200 == res.Code)
         {
             return(res.Content);
         }
         else
         {
             throw new Exception(res.ErrorLog);
         }
     }
     catch (Exception ex)
     {
         string err = ex.Message;
         if (ex is WebException)
         {
             err = HttpClientHelperV45.ParseHdfsWebException(ex as WebException);
         }
         DebugHelper.OutLog("获取HDFS文件失败:" + err);
         DebugHelper.Error(ex, err);
         return(null);
     }
 }