ตั้งค่า NFS Share บน Debian
NFS เป็นระบบไฟล์บนเครือข่ายที่อนุญาตให้คอมพิวเตอร์เข้าถึงไฟล์ผ่านเครือข่ายคอมพิวเตอร์ คู่มือนี้จะอธิบายวิธีการเปิดเผยโฟลเดอร์ผ่าน NF
ในบทช่วยสอนนี้คุณจะได้เรียนรู้วิธีตั้งค่า RESTful API ที่สมบูรณ์ซึ่งจะให้บริการคำขอ HTTP โดยใช้ Node.js และ Express ในขณะที่ย้อนกลับ proxying ด้วย NGINX บน Ubuntu 16.04 LTS เราจะใช้แอปพลิเคชันที่ชื่อว่าบุรุษไปรษณีย์เป็นเครื่องมือพัฒนา API ที่เป็นที่รู้จักกันดีในการทดสอบ API ของเราและตรวจสอบให้แน่ใจว่ามันทำงานได้อย่างสมบูรณ์ Node.js เป็นเฟรมเวิร์ก JavaScript ที่ทำงานข้ามแพลตฟอร์มได้อย่างรวดเร็วโดยใช้เอ็นจิ้น V8 ของ Chrome มันถูกใช้ในทั้งเดสก์ท็อปและเซิร์ฟเวอร์และมีชื่อเสียงในการจัดการห่วงเหตุการณ์แบบเธรดเดี่ยว เราจะใช้ Node.js เป็นแบ็กเอนด์สำหรับ RESTful API ของเราซึ่งมาพร้อมกับ Express.js ซึ่งเป็นเฟรมเวิร์กเว็บแอปพลิเคชันของเราที่สร้างขึ้นสำหรับ Node.js Express.js เปิดตัวเป็นซอฟต์แวร์เสรีและเปิด Express เป็นฝั่งเซิร์ฟเวอร์เขียนด้วย JavaScript และถูกออกแบบมาสำหรับการสร้าง API ซึ่งทำให้สมบูรณ์แบบสำหรับโครงการของเรา ในทางกลับกันบุรุษไปรษณีย์เป็นไคลเอนต์ HTTP ที่ทรงพลังมากด้วยการพัฒนา API ในใจ มันมีเครื่องมือทั้งหมดที่คุณอาจต้องการสำหรับการพัฒนา API
ก่อนอื่นคุณต้องตรงไปที่เว็บไซต์ของบุรุษไปรษณีย์และดาวน์โหลดและติดตั้งบุรุษไปรษณีย์สำหรับพีซีหลักของคุณ (ไม่ใช่เซิร์ฟเวอร์ของคุณ) คำแนะนำการติดตั้งทั้งหมดจะอยู่ในเว็บไซต์
ในการเริ่มต้นเราจะต้องติดตั้ง Node.js ก่อนเพื่อให้เราสามารถเริ่มพัฒนา API ของเรา เราจะทำการดาวน์โหลดและติดตั้ง Node.js จากเว็บไซต์ทางการ
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
นอกจากนี้คุณจะต้องคว้าเครื่องมือสร้างที่จำเป็นซึ่งจะเป็นประโยชน์ในการรวบรวมโมดูล
sudo apt-get install build-essential
สำหรับบทช่วยสอนนี้เราจะใช้รุ่น LTS ของ Node.js ซึ่งเป็นรุ่น 8.9.3
เราจะต้องเริ่มต้นโครงการ Node.js ใหม่ซึ่งจะมีแอปพลิเคชัน หากต้องการทำเช่นนั้นให้สร้างไดเรกทอรีใหม่
mkdir expressapi
เปลี่ยนเป็นไดเร็กทอรีใหม่ เมื่อเข้าไปข้างในแล้วเรียกใช้npm init
และทำตามคำแนะนำที่จำเป็นทั้งหมด จดบันทึก "จุดเริ่มต้น" ของแอปพลิเคชันของคุณ: คุณจะสร้างไฟล์นี้ในภายหลัง เมื่อเสร็จแล้วคุณจะเห็นpackage.json
ไฟล์ในไดเรกทอรีปัจจุบันของคุณ มันทำหน้าที่เป็นคำอธิบายของโครงการของเราและแสดงรายการทั้งหมดที่จำเป็นในการทำงาน
ตอนนี้เราจะกำหนดค่า Express.js และมันขึ้นอยู่กับการพึ่งพา
npm install express
กระบวนการติดตั้งจะเริ่มขึ้น จะใช้เวลาสองสามนาทีก่อนที่ทุกอย่างจะเสร็จสิ้นการดาวน์โหลด
ต่อไปเราจะสร้างไฟล์เริ่มต้นหลักสำหรับ API ของเรา ที่นี่คุณจะใช้ "จุดเข้าใช้งาน" ที่คุณเห็นในpackage.json
ไฟล์ เพื่อประโยชน์ของบทช่วยสอนนี้ฉันจะใช้รูปแบบการตั้งชื่อเริ่มต้น, index.js
.
touch index.js
จากนั้นเปิดในตัวแก้ไขข้อความนาโน
nano index.js
ในไฟล์หลักของเราเราต้องการโทรหาแพ็คเกจหลักทั้งหมดของเราก่อนและลงทะเบียนเส้นทางของเรา
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
var port = process.env.PORT || 8080;
const router = express.Router();
router.get('/', function(req, res) {
res.json({ message: 'API is Online!' });
});
app.use('/api', router);
app.listen(port);
console.log('Listening on port ' + port);
สิ่งที่เราทำที่นี่คือการเริ่มต้นแอพของเราและตั้งค่าเราเตอร์พื้นฐานสำหรับ API ของเรา 8080
โปรดทราบว่าเราตั้งพอร์ตแอพลิเคชันของเราที่จะ เราจะต้องใช้หมายเลขนี้เมื่อเรากำหนดค่า RESTful API ของเรา ตอนนี้เราพร้อมที่จะไปข้างหน้าและทดสอบ API ของเรา
ในไดเรกทอรีโครงการเรียกใช้ต่อไปนี้
node <filename>.js
นี่จะเริ่ม API ซึ่ง<filename>
เป็นไฟล์เริ่มต้นที่คุณระบุในpackage.json
ไฟล์ จากนั้นเปิดบุรุษไปรษณีย์บนพีซี / Mac ของคุณNew
แล้วคลิกปุ่ม " Request
" ที่มุมบนขวาจากนั้นคลิก " " เมื่อนั้นคุณจะเห็นแถบที่ระบุว่าGET
อยู่ติดกับ" " ที่นี่เราจะป้อน URL คำขอของเรา เพียงป้อนข้อมูลต่อไปนี้ในส่วน URL คำขอและคลิก " Send
"
`http://your-server-ip:3000/api`
คุณจะเห็น " 'API is online'
"
เพื่อจัดการเส้นทางเราจะใช้เราเตอร์ด่วน หากคุณไม่รู้ว่าเราเตอร์คืออะไรจุดสิ้นสุดของแอปพลิเคชันตอบสนองต่อคำขอของลูกค้าเป็นหลัก นี่คือเส้นทางที่เราจะตั้งค่าเป็นตัวอย่าง:
/api/numbers
- แสดงตัวเลขทั้งหมดตั้งแต่ 1-10
/api/letters
- แสดงตัวอักษรทั้งหมดจาก AZ
ตอนนี้เราจะตั้งค่าโครงสร้างมิดเดิลแวร์เส้นทางแรกของเราอย่างนั้น
router.use(function(req, res, next) {
console.log('We've got something.');
next() //calls next middleware in the application.
});
router.route('/numbers/:number').get((req, res) => {
res.json({result: req.params.number + 1})
});
ในตัวอย่างนี้เราตั้งค่าสถานการณ์ที่ผู้ใช้สามารถร้องขอผลรวมของตัวเลข + 1 โดยการจัดเตรียมรูปแบบคำของมันโดยใช้วิธีการ GET เราใช้router.route()
ฟังก์ชั่นเพื่อชี้ไปยังหมายเลขที่เราต้องการส่งกลับเป็นผลลัพธ์ พารามิเตอร์ถูกตั้งชื่อด้วย " :
" ที่ด้านหน้า เราเข้าถึงพารามิเตอร์เหล่านี้ (s) req.params
ผ่านทาง
นี่คือตัวอย่างของตัวอักษร
router.route('/letters/:letter').get((req, res) => {
res.json({result: req.params.letter.toUpperCase()})
});
เราใช้วิธีเดียวกันกับข้างต้น แต่เราส่งจดหมายกลับเป็นตัวพิมพ์ใหญ่
NGINX เป็นซอฟต์แวร์โอเพนซอร์ซที่รู้จักกันดีซึ่งใช้สำหรับการให้บริการเว็บย้อนกลับพร็อกซีสตรีมมิ่งและอีกมากมาย เราจะใช้ NGINX เพื่อย้อนกลับ proxy API ของเราเพื่อให้เราเรียกใช้บนพอร์ต80
เนื่องจาก Node.js ไม่อนุญาตการเชื่อมต่อบนพอร์ตที่น้อยกว่า 1024 โดยไม่มีการเข้าถึงรูท สิ่งนี้มีประโยชน์เมื่อเชื่อมโยงโดเมนของคุณกับเซิร์ฟเวอร์
ในการเริ่มต้นติดตั้ง NGINX คุณจะต้องเรียกใช้สิ่งต่อไปนี้ในเทอร์มินัลของคุณและรอให้การติดตั้งเสร็จสมบูรณ์
sudo apt-get install nginx
ต่อไปเราจะต้องการสร้างไฟล์ไซต์ของเราที่ NGINX จะใช้เพื่อย้อนกลับ proxy app ของเรา
sudo nano /etc/nginx/sites-available-api.js
เติมไฟล์ด้วยค่าต่อไปนี้จากนั้นกดCTRL+ Oเพื่อบันทึก
server {
listen 80;
location / {
proxy_set_header X-Real-IP
$remote_addr;
proxy_set_header
X-Forwarded-For
$proxy_add_x_forwarded_for;
proxy_set_header Host
$http_host;
proxy_set_header
X-NginX-Proxy true; proxy_pass
http://127.0.0.1:8080/;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade
$http_upgrade;
proxy_set_header Connection
"upgrade";
proxy_redirect off;
proxy_set_header
X-Forwarded-Proto $scheme;
}
}
ใช้พอร์ตเดียวกันเราวิ่งในโปรแกรมของเราก่อนหน้านี้เรากำลังบอก Nginx เพื่อเปลี่ยนเส้นทางการร้องขอทั้งหมดจากที่อยู่ IP ของเราในพอร์ต80
การ API 8080
ของเราทำงานบนพอร์ต
ถัดไปเปิดใช้งาน reverse proxy โดยเชื่อมโยงไฟล์ที่สร้างขึ้นใหม่ของเราไปยังsites-available
โฟลเดอร์:
sudo ln -s /etc/nginx/sites-available/api /etc/nginx/sites-available
สิ่งนี้จะทำให้มั่นใจได้ว่า NGINX จะย้อนกลับ proxy API ของเรา
เมื่อเราเสร็จสิ้นการกำหนดค่า NGINX ของเราเราจะเริ่ม NGINX แล้วเริ่ม API ของเรา ก่อนอื่นให้รีสตาร์ท NGINX
sudo systemctl restart nginx
จากนั้นเปลี่ยนกลับไปที่ไดเรกทอรี API ของคุณแล้วเริ่ม
node <filename>.js
80
โปรแกรมจะทำงานบนพอร์ต เพียงเรียกใช้การทดสอบจากด้านบนกับบุรุษไปรษณีย์เพื่อให้แน่ใจว่าทุกอย่างทำงานอย่างถูกต้อง
ในสภาวะแวดล้อมการใช้งานจริงคุณต้องการให้แน่ใจว่าคุณมีผู้จัดการกระบวนการสำหรับแอ็พพลิเคชันโหนดของคุณเพื่อให้แน่ใจว่าพวกเขายังคงทำงานอยู่ตลอดเวลาในพื้นหลัง ในบทช่วยสอนนี้เราจะใช้ตัวจัดการกระบวนการที่เรียกว่า PM2 (ตัวจัดการกระบวนการ 2) ซึ่งเป็นตัวจัดการกระบวนการสำหรับแอปพลิเคชัน Node.js ที่จะทำให้พวกเขามีชีวิตอยู่ตลอดไปด้วยการหยุดทำงานน้อยที่สุด PM2 มาพร้อมกับเครื่องมือการจัดการที่มีประโยชน์มากมายเช่นหยุดโหลดใหม่หยุดชั่วคราวและอื่น ๆ หากต้องการติดตั้ง PM2 ให้พิมพ์ดังต่อไปนี้แล้วรอให้ติดตั้ง
sudo npm install pm2 -g
เมื่อติดตั้งแล้วสิ่งที่คุณต้องทำคือตรวจสอบให้แน่ใจว่าคุณอยู่ในไดเรกทอรีโครงการพิมพ์ต่อไปนี้และแอปพลิเคชันจะเริ่มขึ้น
pm2 start <filename>.js
ดังที่ได้กล่าวไว้ก่อนหน้า PM2 มีเครื่องมือที่มีประโยชน์ซึ่งคุณสามารถใช้เพื่อจัดการแอปพลิเคชันของคุณได้ดีขึ้น
pm2 stop
- ตามชื่อแนะนำสิ่งนี้จะช่วยให้คุณสามารถหยุดแอปพลิเคชันที่ทำงานอยู่ในปัจจุบันและฆ่ากระบวนการ หากใบสมัครของคุณสร้างผลลัพธ์ที่ไม่คาดคิดการหยุดมันจะมีประโยชน์
pm2 list
- ฟังก์ชั่นรายการช่วยให้คุณเห็นแอปพลิเคชั่นที่ทำงานอยู่ในปัจจุบันทั้งหมดผ่าน PM2 ซึ่งแมปด้วยชื่อของพวกเขา หากคุณต้องการตรวจสอบสถานะการออนไลน์ของแอปพลิเคชันของคุณอย่างรวดเร็วคุณควรใช้เครื่องมือนี้
pm2 restart
- หากแอปพลิเคชันของคุณค้างด้วยเหตุผลบางประการและคุณต้องการโหลดซ้ำการรีสตาร์ท pm2 จะทำเช่นนั้น มันจะฆ่าขั้นตอนการสมัครและเริ่มต้นอีกครั้งภายใต้กระบวนการอื่น
pm2 monit
- เครื่องมือตรวจสอบภายในของ PM2 ช่วยให้คุณดูกราฟของรายละเอียดเฉพาะแอปพลิเคชันของคุณเช่นการใช้ CPU / RAM ในกราฟสไตล์ ncurses ที่ใช้งานง่าย สิ่งนี้มีประโยชน์หากคุณต้องการให้เห็นภาพการโหลดแอปพลิเคชันของคุณ
ตอนนี้เราได้เสร็จสิ้นการสร้าง RESTful API โดยใช้ Node.js, Express และ reverse proxying ด้วย NGINX อย่าลังเลที่จะขยายการสอนนี้ คุณสามารถทำส���่งดีๆมากมายกับ API ใหม่ของคุณเช่นเพิ่มวิธีการรับรองความถูกต้องฐานข้อมูลเส้นทางที่ดีขึ้นและการจัดการข้อผิดพลาดและอื่น ๆ อีกมากมาย หากคุณมีโดเมนที่มีระเบียน "A" ตั้งค่าเป็นที่อยู่ IP ของคุณแล้วคุณจะสามารถเข้าถึง API จากโดเมนของคุณ หากคุณต้องการที่จะเรียนรู้เพิ่มเติมเกี่ยวกับ Express.js เยี่ยมชมเว็บไซต์ของพวกเขาที่http://expressjs.com ต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ NGINX และพร็อกซีกลับแวะไปhttp://nginx.com อ่านเพิ่มเติมเกี่ยวกับ PM2 ไปที่หน้าของพวกเขาที่http://pm2.keymetrics.io
NFS เป็นระบบไฟล์บนเครือข่ายที่อนุญาตให้คอมพิวเตอร์เข้าถึงไฟล์ผ่านเครือข่ายคอมพิวเตอร์ คู่มือนี้จะอธิบายวิธีการเปิดเผยโฟลเดอร์ผ่าน NF
ใช้ระบบที่แตกต่างกันอย่างไร Directus 6.4 CMS เป็นระบบการจัดการเนื้อหาแบบไม่มีหัว (Headless Content Management: CMS) ที่ทรงพลังและยืดหยุ่นซึ่งให้ผู้พัฒนา
TeamTalk เป็นระบบการประชุมที่ช่วยให้ผู้ใช้สามารถสนทนาด้วยเสียง / วิดีโอคุณภาพสูงสนทนาผ่านข้อความถ่ายโอนไฟล์และแชร์หน้าจอ มันฉัน
ใช้ระบบที่แตกต่างกันอย่างไร Pagekit เป็น CMS โอเพนซอร์สที่เขียนด้วย PHP ซอร์สโค้ดของ Pagekit นั้นโฮสต์บน GitHub คำแนะนำนี้จะแสดงให้คุณเห็นว่า
สฟิงซ์เป็นเครื่องมือค้นหาข้อความแบบโอเพนซอร์ซฟรีและโอเพนซอร์สซึ่งสามารถรวมเข้ากับเว็บแอปพลิเคชั่นต่าง ๆ เพื่อให้ได้คุณภาพที���รวดเร็วและสูง
Vultr มีคุณสมบัติที่อนุญาตให้คุณติดตั้งคีย์ SSH ล่วงหน้าเมื่อสร้างอินสแตนซ์ใหม่ สิ่งนี้อนุญาตให้คุณเข้าถึงผู้ใช้รูทเซิร์ฟเวอร์อย่างไรก็ตาม
ใช้ระบบที่แตกต่างกันอย่างไร Diaspora เป็นเครือข่ายโซเชียลที่ตระหนักถึงความเป็นส่วนตัวและเป็นโอเพ่นซอร์ส ในบทช่วยสอนนี้คุณจะได้เรียนรู้วิธีการตั้งค่าและกำหนดค่า po Diaspora
ใช้ระบบที่แตกต่างกันอย่างไร Fuel CMS เป็นระบบจัดการเนื้อหาที่ใช้ CodeIgniter ซอร์สโค้ดของมันถูกโฮสต์บน GitHub คำแนะนำนี้จะแสดงให้คุณเห็นว่า
ใช้ระบบที่แตกต่างกันอย่างไร Snipe-IT เป็นเว็บแอปพลิเคชั่นฟรีและโอเพนซอร์สสำหรับการจัดการสินทรัพย์ด้านไอที มันถูกเขียนบนกรอบงาน Laravel 5.2 และการใช้งาน
ใช้ระบบที่แตกต่างกันอย่างไร ไทกะเป็นแอปพลิเคชั่นฟรีและโอเพ่นซอร์สสำหรับการจัดการโครงการ ซึ่งแตกต่างจากเครื่องมือการจัดการโครงการอื่น ๆ ไทก้าใช้ส่วนเพิ่ม
FTP ที่ปลอดภัยมากหรือเพียงแค่ vsFTPd เป็นซอฟต์แวร์น้ำหนักเบาที่มีความสามารถในการปรับแต่ง ในบทช่วยสอนนี้เราจะรักษาความปลอดภัยของข้อความ
CentOS ติดตามการพัฒนา Red Hat Enterprise Linux (RHEL) RHEL พยายามที่จะเป็นแพลตฟอร์มเซิร์ฟเวอร์ที่มั่นคงซึ่งหมายความว่าจะไม่รีบเร่งในการรวม
Ranger เป็นตัวจัดการไฟล์แบบบรรทัดคำสั่งที่มีการเชื่อมโยงคีย์ VI มันจัดเตรียมอินเตอร์เฟส curses ที่เรียบง่ายและดีพร้อมมุมมองบนลำดับชั้นไดเร็กทอรี
ใช้ระบบที่แตกต่างกันอย่างไร Brotli เป็นวิธีการบีบอัดแบบใหม่ที่มีอัตราการบีบอัดที่ดีกว่า GZIP ซอร์สโค้ดของมันถูกโฮสต์แบบสาธารณะบน Githu นี้
ในบางโอกาสผู้ดูแลระบบอาจต้องสร้างบัญชีผู้ใช้และ จำกัด การเข้าถึงเพื่อจัดการไฟล์ของตัวเองผ่าน sFTP เท่านั้น
ใช้ระบบที่แตกต่างกันอย่างไร Omeka Classic 2.4 CMS เป็นแพลตฟอร์มเผยแพร่ดิจิตอลฟรีและโอเพ่นซอร์สและระบบการจัดการเนื้อหา (CMS) สำหรับการแบ่งปันดิจิต้า
การอนุญาตให้ล็อกอินรูทผ่าน SSH นั้นถือว่าเป็นการปฏิบัติด้านความปลอดภัยที่ไม่ดีทั่วทั้งอุตสาหกรรมเทคโนโลยี คุณสามารถดำเนินการที่ละเอียดอ่อนแทน
ใช้ระบบที่แตกต่างกันอย่างไร Moodle เป็นแพลตฟอร์มการเรียนรู้โอเพนซอร์ซหรือระบบจัดการหลักสูตร (CMS) - ชุดซอฟต์แวร์โอเพ่นซอร์สฟรีที่ออกแบบมาเพื่อช่วย
ใช้ระบบที่แตกต่างกันอย่างไร RabbitMQ เป็นนายหน้าข้อความโอเพ่นซอร์สที่ใช้กันอย่างแพร่หลายเขียนในภาษาการเขียนโปรแกรม Erlang เป็นมิดเดิลแวร์ที่มุ่งเน้นข้อความ
ในบทความนี้ฉันจะอธิบายวิธีสร้าง LEMP สแต็คที่ได้รับการป้องกันโดย ModSecurity ModSecurity เป็นไฟร์วอลล์เว็บแอพพลิเคชันแบบโอเพนซอร์สที่มีประโยชน์
เรียนรู้วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7; ระบบการจัดการเนื้อหา Headless ที่มีความยืดหยุ่นสูงและปลอดภัย
เรียนรู้วิธีการตั้งค่า Nginx บน Ubuntu สำหรับการสตรีมวิดีโอสด HLS ด้วยคำแนะนำที่ชัดเจนและเป็นประโยชน์
เรียนรู้การใช้ Percona XtraBackup สำหรับการสำรองข้อมูลด้วยวิธีที่เป็นระบบและง่ายดายบน WordPress ออนไลน์ของคุณ
ReactOS ซึ่งเป็นโอเพ่นซอร์สและระบบปฏิบัติการฟรีพร้อมเวอร์ชันล่าสุดแล้ว สามารถตอบสนองความต้องการของผู้ใช้ Windows ยุคใหม่และล้ม Microsoft ได้หรือไม่? มาหาข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบเก่านี้ แต่เป็นประสบการณ์ OS ที่ใหม่กว่ากัน
การโจมตีของ Ransomware กำลังเพิ่มขึ้น แต่ AI สามารถช่วยจัดการกับไวรัสคอมพิวเตอร์ตัวล่าสุดได้หรือไม่? AI คือคำตอบ? อ่านที่นี่รู้ว่า AI boone หรือ bane
ในที่สุด Whatsapp ก็เปิดตัวแอพเดสก์ท็อปสำหรับผู้ใช้ Mac และ Windows ตอนนี้คุณสามารถเข้าถึง Whatsapp จาก Windows หรือ Mac ได้อย่างง่ายดาย ใช้ได้กับ Windows 8+ และ Mac OS 10.9+
อ่านข้อมูลนี้เพื่อทราบว่าปัญญาประดิษฐ์กำลังได้รับความนิยมในหมู่บริษัทขนาดเล็กอย่างไร และเพิ่มโอกาสในการทำให้พวกเขาเติบโตและทำให้คู่แข่งได้เปรียบ
เมื่อเร็ว ๆ นี้ Apple เปิดตัว macOS Catalina 10.15.4 การอัปเดตเสริมเพื่อแก้ไขปัญหา แต่ดูเหมือนว่าการอัปเดตทำให้เกิดปัญหามากขึ้นที่นำไปสู่การสร้างเครื่อง Mac อ่านบทความนี้เพื่อเรียนรู้เพิ่มเติม
13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data
คอมพิวเตอร์ของเราจัดเก็บข้อมูลทั้งหมดในลักษณะที่เรียกว่าระบบไฟล์บันทึก เป็นวิธีการที่มีประสิทธิภาพที่ช่วยให้คอมพิวเตอร์สามารถค้นหาและแสดงไฟล์ได้ทันทีที่คุณกดค้นหาhttps://wethegeek.com/?p=94116&preview=true