




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
淘淘商城第三天筆記傳智播客Java學(xué)院傳智.入云龍?zhí)蕴陨坛堑谌斓诙靸?nèi)容回顧展示商品列表。分頁(yè)插件的使用PageHelper。easyUIDataGrid的使用方法商品類(lèi)目選擇easyUI異步tree控件的使用。圖片上傳為什么要有圖片服務(wù)器FastDFShttp服務(wù)器。Nginx。Nginxhttp服務(wù)器、虛擬主機(jī)、反向代理及負(fù)載均衡。虛擬主機(jī)基于端口基于域名課程計(jì)劃nginx反向代理和負(fù)載均衡FastDFS的使用實(shí)現(xiàn)圖片上傳功能
反向代理服務(wù)器是引用在服務(wù)端。決定哪臺(tái)服務(wù)器提供服務(wù)。反向代理的模擬反向代理應(yīng)該有一個(gè)nginx服務(wù)器有多個(gè)應(yīng)用服務(wù)器(可以是tomcat)可以使用一臺(tái)虛擬機(jī),安裝一個(gè)nginx,多個(gè)tomcat,來(lái)模擬。Nginx的配置文件:upstreamtomcats{ server48:8080; server48:8081;}server{listen80;server_name;#charsetkoi8-r;#access_loglogs/host.access.logmain;location/{proxy_passhttp://tomcats;indexindex.htmlindex.htm;}}負(fù)載均衡只需要在upstream的server后面添加一個(gè)weight即可代表權(quán)重。權(quán)重越高,分配請(qǐng)求的數(shù)量就越多。默認(rèn)權(quán)重是1圖片服務(wù)器的搭建什么是FastDFSFastDFS是用c語(yǔ)言編寫(xiě)的一款開(kāi)源的分布式文件系統(tǒng)。FastDFS為互聯(lián)網(wǎng)量身定制,充分考慮了冗余備份、負(fù)載均衡、線性擴(kuò)容等機(jī)制,并注重高可用、高性能等指標(biāo),使用FastDFS很容易搭建一套高性能的文件服務(wù)器集群提供文件上傳、下載等服務(wù)。文件上傳流程文件下載流程上傳文件的文件名客戶(hù)端上傳文件后存儲(chǔ)服務(wù)器將文件ID返回給客戶(hù)端,此文件ID用于以后訪問(wèn)該文件的索引信息。文件索引信息包括:組名,虛擬磁盤(pán)路徑,數(shù)據(jù)兩級(jí)目錄,文件名。組名:文件上傳后所在的storage組名稱(chēng),在文件上傳成功后有storage服務(wù)器返回,需要客戶(hù)端自行保存。虛擬磁盤(pán)路徑:storage配置的虛擬路徑,與磁盤(pán)選項(xiàng)store_path*對(duì)應(yīng)。如果配置了store_path0則是M00,如果配置了store_path1則是M01,以此類(lèi)推。數(shù)據(jù)兩級(jí)目錄:storage服務(wù)器在每個(gè)虛擬磁盤(pán)路徑下創(chuàng)建的兩級(jí)目錄,用于存儲(chǔ)數(shù)據(jù)文件。文件名:與文件上傳時(shí)不同。是由存儲(chǔ)服務(wù)器根據(jù)特定信息生成,文件名包含:源存儲(chǔ)服務(wù)器IP地址、文件創(chuàng)建時(shí)間戳、文件大小、隨機(jī)數(shù)和文件拓展名等信息。FastDFS搭建可以使用一臺(tái)虛擬機(jī)來(lái)模擬,只有一個(gè)Tracker、一個(gè)Storage服務(wù)。配置nginx訪問(wèn)圖片。
搭建步驟第一步:把fastDFS都上傳到linux系統(tǒng)。第二步:安裝FastDFS之前,先安裝libevent工具包。yum-yinstalllibevent第三步:安裝libfastcommonV1.0.7工具包。解壓縮./make.sh./make.shinstall把/usr/lib64/libfastcommon.so文件向/usr/lib/下復(fù)制一份第四步:安裝Tracker服務(wù)。解壓縮./make.sh./make.shinstall安裝后在/usr/bin/目錄下有以fdfs開(kāi)頭的文件都是編譯出來(lái)的。配置文件都放到/etc/fdfs文件夾把/root/FastDFS/conf目錄下的所有的配置文件都復(fù)制到/etc/fdfs下。配置tracker服務(wù)。修改/root/FastDFS/conf/tracker.conf文件。啟動(dòng)tracker。/usr/bin/fdfs_trackerd/etc/fdfs/tracker.conf重啟使用命令:/usr/bin/fdfs_trackerd/etc/fdfs/tracker.confrestart第五步:安裝storage服務(wù)。如果是在不同的服務(wù)器安裝,第四步的1~4需要重新執(zhí)行。配置storage服務(wù)。修改/root/FastDFS/conf/storage.conf文件啟動(dòng)storage服務(wù)。/usr/bin/fdfs_storaged/etc/fdfs/storage.confrestart第六步:測(cè)試服務(wù)。修改配置文件/etc/fdfs/client.conf測(cè)試/usr/bin/fdfs_test/etc/fdfs/client.confuploadanti-steal.jpg第七步:搭建nginx提供http服務(wù)。可以使用官方提供的nginx插件。要使用nginx插件需要重新編譯。fastdfs-nginx-module_v1.16.tar.gz解壓插件壓縮包修改/root/fastdfs-nginx-module/src/config文件,把其中的local去掉。對(duì)nginx重新config./configure\--prefix=/usr/local/nginx\--pid-path=/var/run/nginx/nginx.pid\--lock-path=/var/lock/nginx.lock\--error-log-path=/var/log/nginx/error.log\--http-log-path=/var/log/nginx/access.log\--with-http_gzip_static_module\--http-client-body-temp-path=/var/temp/nginx/client\--http-proxy-temp-path=/var/temp/nginx/proxy\--http-fastcgi-temp-path=/var/temp/nginx/fastcgi\--http-uwsgi-temp-path=/var/temp/nginx/uwsgi\--http-scgi-temp-path=/var/temp/nginx/scgi\--add-module=/root/fastdfs-nginx-module/srcmakemakeinstall把/root/fastdfs-nginx-module/src/mod_fastdfs.conf文件復(fù)制到/etc/fdfs目錄下。編輯:nginx的配置在nginx的配置文件中添加一個(gè)Server:server{listen80;server_name;location/group1/M00/{#root/home/FastDFS/fdfs_storage/data;ngx_fastdfs_module;}}將libfdfsclient.so拷貝至/usr/lib下cp/usr/lib64/libfdfsclient.so/usr/lib/啟動(dòng)nginx圖片服務(wù)的使用官方提供一個(gè)jar包使用方法:把FastDFS提供的jar包添加到工程中初始化全局配置。加載一個(gè)配置文件。創(chuàng)建一個(gè)TrackerClient對(duì)象。創(chuàng)建一個(gè)TrackerServer對(duì)象。聲明一個(gè)StorageServer對(duì)象,null。獲得StorageClient對(duì)象。直接調(diào)用StorageClient對(duì)象方法上傳文件即可。@Test publicvoidtestUpload()throwsException{ //1、把FastDFS提供的jar包添加到工程中 //2、初始化全局配置。加載一個(gè)配置文件。 ClientGlobal.init("D:\\workspaces-itcast\\JaveEE18\\taotao-manager\\taotao-manager-web\\src\\main\\resources\\properties\\client.conf"); //3、創(chuàng)建一個(gè)TrackerClient對(duì)象。 TrackerClienttrackerClient=newTrackerClient(); //4、創(chuàng)建一個(gè)TrackerServer對(duì)象。 TrackerServertrackerServer=trackerClient.getConnection(); //5、聲明一個(gè)StorageServer對(duì)象,null。 StorageServerstorageServer=null; //6、獲得StorageClient對(duì)象。 StorageClientstorageClient=newStorageClient(trackerServer,storageServer); //7、直接調(diào)用StorageClient對(duì)象方法上傳文件即可。 String[]strings=storageClient.upload_file("D:\\Documents\\Pictures\\images\\2f2eb938943d.jpg","jpg",null); for(Stringstring:strings){ System.out.println(string); } }Client.conftracker_server=33:22122使用工具類(lèi)上傳圖片@Test publicvoidtestFastDfsClient()throwsException{ FastDFSClientclient=newFastDFSClient("D:\\workspaces-itcast\\JaveEE18\\taotao-manager\\taotao-manager-web\\src\\main\\resources\\properties\\client.conf"); StringuploadFile=client.uploadFile("D:\\Documents\\Pictures\\images\\200811281555127886.jpg","jpg"); System.out.println(uploadFile); }圖片上傳功能功能分析請(qǐng)求的參數(shù):請(qǐng)求的url:/pic/upload參考文檔:/docs/upload.html添加jar包:Commons-io、fileupload,兩個(gè)jar包。在springmvc.xml中配置多媒體解析器<beanid="multipartResolver" class="mons.CommonsMultipartResolver"> <!--設(shè)定默認(rèn)編碼--> <propertyname="defaultEncoding"value="UTF-8"></property> <!--設(shè)定文件上傳的最大值5MB,5*1024*1024--> <propertyname="maxUploadSize"value="5242880"></property> </bean>響應(yīng)的內(nèi)容返回格式(JSON)//成功時(shí){"error":0,"url":"/path/to/file.ext"}//失敗時(shí){"error":1,"message":"錯(cuò)誤信息"}需要?jiǎng)?chuàng)建一個(gè)pojo描述返回值。Pojo中有三個(gè)屬性:error、url、message,可以放到taotao-common工程中。publicclassPictureResult{ privateinterror; privateStringurl; privateStringmessage; publicintgetError(){ returnerror; } publicvoidsetError(interror){ this.error=error; } publicStringgetUrl(){ returnurl; } publicvoidsetUrl(Stringurl){ this.url=url; } publicStringgetMessage(){ returnmessage; } publicvoidsetMessage(Stringmessage){ this.message=message; } }Service層接收?qǐng)D片數(shù)據(jù),把圖片上傳到圖片服務(wù)器,返回PictureResult。需要使用FastDFSClient工具類(lèi)。參數(shù):MultiPartFilepictureFile返回值:PictureResult@ServicepublicclassPictureServiceImplimplementsPictureService{ @Override publicPictureResultuploadPic(MultipartFilepicFile){ PictureResultresult=newPictureResult(); //判斷圖片是否為空 if(picFile.isEmpty()){ result.setError(1); result.setMessage("圖片為空"); returnresult; } //上傳到圖片服務(wù)器 try{ //取圖片擴(kuò)展名 StringoriginalFilename=picFile.getOriginalFilename(); //取擴(kuò)展名不要“.” StringextName=originalFilename.substring(originalFilename.lastIndexOf(".")+1); FastDFSClientclient=newFastDFSClient("classpath:properties/client.conf"); Stringurl=client.uploadFile(picFile.getBytes(),extName); //把url響應(yīng)給客戶(hù)端 result.setError(0); result.setUrl(url);
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單位蔬菜供應(yīng)合同范本
- 合同范本其他事項(xiàng)
- 合同范本軟件畫(huà)畫(huà)
- 卷簾窗簾購(gòu)銷(xiāo)合同范例
- 2025年耐磨合金鑄鐵項(xiàng)目建議書(shū)
- 新西蘭蜂蜜采購(gòu)合同范本
- 水果購(gòu)銷(xiāo)合同范本
- 家具設(shè)計(jì)合同范本
- 單位車(chē)輛定點(diǎn)維修合同范本
- 醫(yī)院租賃合同范本
- BLM(含樣例)教學(xué)課件
- 企業(yè)數(shù)字化轉(zhuǎn)型之路燈塔工廠專(zhuān)題報(bào)告
- 低溫恒溫槽日常維護(hù)保養(yǎng)
- 市政道路工程城市道路施工組織設(shè)計(jì)
- 動(dòng)物免疫接種技術(shù)課件
- 最全食堂菜譜、-公司食堂菜譜大全、-大鍋菜:522道菜+35道湯
- 線下庭審申請(qǐng)書(shū)
- ICU護(hù)理查房記錄【范本模板】
- 幼兒園大班繪本故事-神奇的大蒜【幼兒教案】
- 煤礦信息化管理制度
- 導(dǎo)管滑脫應(yīng)急預(yù)案演練住院患者導(dǎo)尿管道滑脫
評(píng)論
0/150
提交評(píng)論