พื้นที่เก็บข้อมูลนี้มีซอร์สโค้ดสำหรับตัวย่อลิงค์ที่มีการเชื่อมโยง CGI ที่เขียนใน Rust คุณสามารถโฮสต์โครงการนี้ในสภาพแวดล้อมของคุณเองโดยใช้คำแนะนำด้านล่าง
ลิงก์บนเว็บกำลังเพิ่มขึ้นเรื่อย ๆ เพื่อนอย่าส่งลิงค์หลายบรรทัด! อย่างไรก็ตามบริการลิงก์ของบุคคลที่สามเป็นฝันร้ายที่เป็นส่วนตัว แต่ส่วนใหญ่ฉันต้องการเรียนรู้สนิมและนี่เป็นโครงการที่เรียบง่าย
โครงการนี้มีความหมายน้อยและเรียบง่าย คุณสมบัติผู้ใช้:
คุณสมบัติซอฟต์แวร์:

วิธีที่แนะนำในการติดตั้งโครงการนี้คือการใช้อิมเมจนักเทียบท่า อย่างไรก็ตามโดยเฉพาะอย่างยิ่งหากคุณต้องการใช้ API คุณสามารถติดตั้งไบนารีได้โดยตรงในเว็บเซิร์ฟเวอร์ของคุณเอง
ขั้นแรกเตรียมไดเรกทอรีสำหรับไฟล์ข้อมูล ผู้ใช้จะต้องเป็นเจ้าของโดย UID 82 (www-data บน Debian/Ubuntu)
$ mkdir -p ${STORAGE} /smrs/data
$ sudo chown 82:82 ${STORAGE} /smrs/dataนี่คือตัวอย่างบทกวีนักเทียบท่า:
smrs :
image : ghcr.io/igor47/smrs:v0.1.1
restart : unless-stopped
container_name : smrs
labels :
- " traefik.enable=true "
- " traefik.http.routers.smrs.rule=Host(`example.com`,`www.example.com`) "
- " traefik.http.routers.smrs.tls=true "
- " traefik.http.routers.smrs.tls.certresolver=letsencrypt "
- " traefik.http.routers.smrs.entrypoints=https "
- " traefik.http.services.smrs.loadbalancer.server.port=8000 "
volumes :
- ${STORAGE}/smrs/data:/smrs/dataสิ่งนี้ใช้ traefik เป็นพร็อกซีย้อนกลับไปยังพอร์ตคอนเทนเนอร์ 8000 คุณสามารถใช้พร็อกซีย้อนกลับของคุณเองหรือเปิดเผยพอร์ตโดยตรง
โคลนที่เก็บและสร้างไบนารี:
$ cargo build --release ใส่ไฟล์ target/release/smrs ที่ไหนสักแห่งในเส้นทางของเว็บเซิร์ฟเวอร์ของคุณ คุณจะต้องกำหนดค่าเซิร์ฟเวอร์ของคุณเพื่อเรียกใช้ไบนารีเป็นสคริปต์ CGI ฉันใช้ apache2 ภายในคอนเทนเนอร์ ไฟล์กำหนดค่าอยู่ใน conf/smrs.conf ใน repo นี้
ไบนารีสนิมใช้จุดสิ้นสุด API ต่อไปนี้:
GET /session - ส่งคืนเซสชันปัจจุบันเป็น { session: string }POST /session - ตั้งค่าคุกกี้เซสชันเป็นค่าที่กำหนด { session: string }POST /save - บันทึก URL ที่โทเค็นที่ได้รับ (ถ้ายังไม่ได้ใช้งาน) { url: string, token: string }GET /to/<token - เปลี่ยนเส้นทางไปยัง URL ที่โทเค็นที่ได้รับหรือส่งคืน 404GET /list - ส่งคืนรายการโทเค็นและ URL ทั้งหมดที่บันทึกโดย session ปัจจุบันเป็น { links: [{ token: string, url: string, created_at: i32 }]POST /forget - ทำเครื่องหมายโทเค็นที่ได้รับเป็นลบหรือ 404 : { token: string } ในการเรียกใช้โครงการนี้ในเครื่องคุณสามารถติดตั้งเครื่องมือ cargo make และเรียกใช้งาน devenv :
$ cargo make devenv สภาพแวดล้อม dev จะสามารถเข้าถึงได้ที่ LocalHost: 8000/ สิ่งนี้จะผูกติดกับ htdocs dir ลงในคอนเทนเนอร์เพื่อให้คุณสามารถทำซ้ำบนรหัสและโหลดซ้ำ หากต้องการทำซ้ำบน Rust Binary คุณสามารถเรียกใช้งาน iter ซึ่งจะสร้างไบนารีในพื้นที่และคัดลอกลงในคอนเทนเนอร์:
$ cargo make iterยินดีต้อนรับ! แต่โปรดทราบว่าโครงการนี้มีความหมายน้อยที่สุด ฉันจะไม่ยอมรับ PRS ที่เพิ่มการพึ่งพาหรือคุณสมบัติที่ฉันไม่ต้องการมากเกินไป
MIT อย่าลังเลที่จะแยกและทำสิ่งที่คุณต้องการ