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); } }
/// <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); } }