Beispiel #1
0
        public Crawler Fetch()
        {
            var request = WebRequest.Create(this.SourceUrl);

            using (var response = request.GetResponse() as HttpWebResponse)
            {
                if (response.StatusCode != HttpStatusCode.OK)
                {
                    State = "Url returns " + response.StatusCode + ", " + response.StatusDescription;
                    return(this);
                }
                if (response.ContentType.IndexOf("image") == -1)
                {
                    State = "Url is not an image";
                    return(this);
                }

                try
                {
                    var name = Path.GetFileName(this.SourceUrl);
                    if (string.IsNullOrEmpty(name))
                    {
                        name = "Crawler";
                    }
                    var    stream = response.GetResponseStream();
                    var    reader = new BinaryReader(stream);
                    byte[] bytes;
                    string servePath = "";
                    using (var ms = new MemoryStream())
                    {
                        byte[] buffer = new byte[4096];
                        int    count;
                        while ((count = reader.Read(buffer, 0, buffer.Length)) != 0)
                        {
                            ms.Write(buffer, 0, count);
                        }
                        HttpResult res = QiniutokenHelper.UploadFile(ms, name, out servePath);


                        if (res.Code == 200)
                        {
                            this.ServerUrl = servePath;
                            State          = "SUCCESS";
                        }
                        else
                        {
                            State = "Error";
                        }
                    }
                }
                catch (Exception e)
                {
                    LogHelper.WriteLog(e, "Fetch");
                    State = "抓取错误:" + e.Message;
                }
                return(this);
            }
        }
        public override void Process()
        {
            try
            {
                string         uploadFileName = null;
                var            accessKey      = ConfigurationManager.AppSettings["qiniukey"];    //填写在你七牛后台找到相应的accesskey "TYb8ZurNoN-xrUOhnNom_q3ZdPl1OLJqUsvoP0xB";
                var            secretKey      = ConfigurationManager.AppSettings["qiniusercet"]; //填写在你七牛后台找到相应的secretkey""d7ajdjoitbUiJZQY7ANw5bSf3p6K3nQA8KkGxIDq";;
                HttpPostedFile file           = Request.Files[UploadConfig.UploadFieldName];
                Stream         myStream       = file.InputStream;

                uploadFileName = file.FileName;

                if (!CheckFileType(uploadFileName))
                {
                    Result.State = UploadState.TypeNotAllow;
                    WriteResult();
                    return;
                }
                if (!CheckFileSize(file.ContentLength))
                {
                    Result.State = UploadState.SizeLimitExceed;
                    WriteResult();
                    return;
                }

                HttpResult result = QiniutokenHelper.UploadFile(myStream, uploadFileName, out string key);
                if (result.Code == 200)
                {
                    this.Result.State = UploadState.Success;
                    // this.Result.Url = $"http://ptdzsd6xm.bkt.clouddn.com{Path.DirectorySeparatorChar}{key}";
                    this.Result.Url = key;
                }
            }
            catch (Exception ex)
            {
                LogHelper.WriteLog(ex, "Process");
                throw ex;
            }

            finally
            {
                WriteResult();
            }
        }
Beispiel #3
0
        public Crawler Fetch()
        {
            var request = HttpWebRequest.Create(this.SourceUrl) as HttpWebRequest;

            using (var response = request.GetResponse() as HttpWebResponse)
            {
                if (response.StatusCode != HttpStatusCode.OK)
                {
                    State = "Url returns " + response.StatusCode + ", " + response.StatusDescription;
                    return(this);
                }
                if (response.ContentType.IndexOf("image") == -1)
                {
                    State = "Url is not an image";
                    return(this);
                }

                try
                {
                    var name = Path.GetFileName(this.SourceUrl);
                    if (string.IsNullOrEmpty(name))
                    {
                        name = "Crawler";
                    }
                    var        stream = response.GetResponseStream();
                    HttpResult res    = QiniutokenHelper.UploadFile(stream, name, out string servePath);
                    if (res.Code == 200)
                    {
                        this.ServerUrl = servePath;
                        State          = "SUCCESS";
                    }
                    else
                    {
                        State = "Error";
                    }
                }
                catch (Exception e)
                {
                    LogHelper.WriteLog(e, "Fetch");
                    State = "抓取错误:" + e.Message;
                }
                return(this);
            }
        }