Immich-Go เป็นเครื่องมือโอเพ่นซอร์สที่ออกแบบมาเพื่อปรับปรุงการอัปโหลดคอลเลกชันภาพถ่ายขนาดใหญ่ไปยังเซิร์ฟเวอร์ Immich ที่โฮสต์เอง
Immich-go
แล้ว:การนำรูปถ่ายของคุณออกมา:
การนำเข้ารูปภาพของคุณ:
/path/to/your/files/takeout-*.zip
เป็นชื่อไฟล์-google-photos
ไม่ได้นำเข้าไฟล์จำนวนมาก : มีตัวเลือกอะไรบ้าง?
-upload-when-missing-JSON
สำหรับข้อมูลเชิงลึกเกี่ยวกับเหตุผลที่อยู่เบื้องหลังทางเลือกอื่นแทน immich-cli
โปรดอ่านแรงจูงใจที่นี่
นี่เป็นเวอร์ชันแรกๆ ยังไม่มีการทดสอบอย่างกว้างขวาง เก็บสำเนาสำรองของไฟล์ของคุณไว้เพื่อความปลอดภัย
immich-go
immich-go
เป็นเครื่องมือบรรทัดคำสั่งที่ต้องเรียกใช้จากหน้าต่างเทอร์มินัล
โปรแกรม immich-go
ใช้ Immich API ดังนั้นจึงจำเป็นต้องมีที่อยู่เซิร์ฟเวอร์และคีย์ API ที่ถูกต้อง
บน Linux, macOS และ FreeBSD เพื่อน:
./immich-go -server=URL -key=KEY -general_options COMMAND -command_options... {path/to/files}
สำคัญ
ผู้ใช้ macOS ต้องอนุญาตให้ immich-go ทำงานอย่างชัดเจน เปิดความเป็นส่วนตัวและความปลอดภัย > การตั้งค่าความปลอดภัยเพื่ออนุญาต
บนระบบ Windows:
.immich - go - server = URL - key = KEY - general_options COMMAND - command_options.. . {path / to / files}
ตัวเลือกบูลีนมีค่าเริ่มต้นตามที่ระบุไว้ด้านล่าง การกล่าวถึงตัวเลือกใดๆ ในบรรทัดทั่วไปจะเปลี่ยนตัวเลือกเป็น TRUE หากต้องการบังคับให้ตัวเลือกเป็น FALSE ให้ใช้ไวยากรณ์ต่อไปนี้: -option=FALSE
ตัวอย่าง: Immich-go ตรวจสอบใบรับรอง SSL ของเซิร์ฟเวอร์ คุณสามารถปิดการใช้งานลักษณะการทำงานนี้ได้โดยเปิดตัวเลือก skip-verify-ssl
เพียงเพิ่ม -skip-verify-ssl
-skip-verify-ssl
เทียบเท่ากับ -skip-verify-ssl=TRUE
หากต้องการปิดคุณสมบัติ (ซึ่งเป็นพฤติกรรมเริ่มต้น) ให้ใช้ -skip-verify-ssl=FALSE
พารามิเตอร์ | คำอธิบาย | ค่าเริ่มต้น |
---|---|---|
-use-configuration=path/to/config/file | ระบุไฟล์คอนฟิกูเรชันที่จะใช้ URL เซิร์ฟเวอร์และคีย์ API จะถูกจัดเก็บไว้ในไฟล์การกำหนดค่า immich-go สามารถละเว้นได้สำหรับการวิ่งครั้งถัดไป | ลินุกซ์ $HOME/.config/immich-go/immich-go.json Windows %AppData%immich-goimmich-go.json macOS $HOME/Library/Application Support/immich-go/immich-go.json |
-server=URL | URL ของบริการ Immich เช่น http://:2283 หรือ https://your-domain.tld | |
-api=URL | URL ของจุดสิ้นสุด Immich api (http://container_ip:3301) | |
-device-uuid=VALUE | บังคับให้ระบุอุปกรณ์ | $HOSTNAME |
-client-timeout=duration | ตั้งค่าการหมดเวลาสำหรับการโทรของเซิร์ฟเวอร์ ระยะเวลาเป็นเลขทศนิยมที่มีหน่วยต่อท้าย เช่น "300ms", "1.5m" หรือ "45m" หน่วยเวลาที่ถูกต้องคือ "ms", "s", "m", "h" | 5m |
-skip-verify-ssl | ข้ามการตรวจสอบ SSL เพื่อใช้กับใบรับรองที่ลงนามด้วยตนเอง | false |
-key=KEY | คีย์ที่สร้างโดยผู้ใช้ รูปภาพที่อัปโหลดจะเป็นของเจ้าของกุญแจ | |
-log-level=LEVEL | ปรับรายละเอียดบันทึกดังต่อไปนี้: - ERROR : แสดงเฉพาะข้อผิดพลาด- WARNING : เหมือนกับอันก่อนหน้าบวกกับข้อผิดพลาดที่ไม่บล็อก- INFO : ข้อความข้อมูล | INFO |
-log-file=/path/to/log/file | เขียนข้อความทั้งหมดลงในไฟล์ | Linux $HOME/.cache/immich-go/immich-go_YYYY-MM-DD_HH-MI-SS.log Windows %LocalAppData%immich-goimmich-go_YYYY-MM-DD_HH-MI-SS.log macOS $HOME/Library/Caches/immich-go/immich-go_YYYY-MM-DD_HH-MI-SS.log |
-log-json | ส่งออกบันทึกเป็นไฟล์ JSON ที่คั่นด้วยบรรทัด | false |
-time-zone=time_zone_name | ตั้งค่าโซนเวลาสำหรับวันที่โดยไม่มีข้อมูลโซนเวลา | โซนเวลาของระบบ |
-no-ui | ปิดการใช้งานอินเทอร์เฟซผู้ใช้ | false |
-debug-counters | เปิดใช้งานการสร้าง CSV ข้างไฟล์บันทึก | false |
-api-trace | เปิดใช้งานการติดตามการเรียก API | false |
upload
ใช้คำสั่งนี้เพื่ออัปโหลดรูปภาพและวิดีโอจากไดเร็กทอรีในเครื่อง โฟลเดอร์ซิป หรือไฟล์ซิปทั้งหมดที่ขั้นตอนการนำออกของ Google Photos สร้างขึ้น
พารามิเตอร์ | คำอธิบาย | ค่าเริ่มต้น |
---|---|---|
-album="ALBUM NAME" | นำเข้าเนื้อหาไปยังอัลบั้ม Immich ALBUM NAME | |
-dry-run | ดูตัวอย่างการกระทำทั้งหมดตามที่ควรจะทำ | FALSE |
-create-album-folder | สร้างอัลบั้ม immich หลังจากชื่อโฟลเดอร์ | FALSE |
-use-full-path-album-name | ใช้เส้นทางแบบเต็มไปยังไฟล์เพื่อกำหนดชื่ออัลบั้ม | FALSE |
-album-name-path-separator | กำหนดจำนวนโฟลเดอร์ (ย่อย) ที่จะเข้าร่วม (ถ้ามี) | |
-create-stacks | ซ้อน jpg/raw หรือระเบิด | FALSE |
-stack-jpg-raw | ควบคุมการซ้อนภาพ jpg/raw | FALSE |
-stack-burst | ควบคุมการระเบิดแบบซ้อน | FALSE |
-select-types=".ext,.ext,.ext..." | รายการส่วนขยายที่ยอมรับ | |
-exclude-types=".ext,.ext,.ext..." | รายการส่วนขยายที่ยกเว้น | |
-when-no-date=FILE|NOW | เมื่อไม่สามารถกำหนดวันที่รับได้ ให้ใช้วันที่ของ FILE หรือเวลาปัจจุบันทันที | FILE |
-exclude-files=pattern | ละเว้นไฟล์ตามรูปแบบ ไม่คำนึงถึงขนาดตัวพิมพ์ ทำซ้ำตัวเลือกสำหรับแต่ละรูปแบบที่คุณต้องการ | @eaDir/ @__thumb/ SYNOFILE_THUMB_*.* Lightroom Catalog/ thumbnails/ |
ปรับแต่งการนำเข้าตามวันที่ที่ระบุ:
พารามิเตอร์ | คำอธิบาย |
---|---|
-date=YYYY-MM-DD | นำเข้ารูปภาพที่ถ่ายในวันใดวันหนึ่ง |
-date=YYYY-MM | เลือกภาพที่ถ่ายในช่วงเดือนใดเดือนหนึ่ง |
-date=YYYY | เลือกภาพที่ถ่ายในแต่ละปี |
ใช้ -exclude-files=PATTERN
เพื่อยกเว้นบางไฟล์หรือไดเร็กทอรีจากการอัปโหลด ทำซ้ำตัวเลือกสำหรับแต่ละรูปแบบที่คุณต้องการ ไดเร็กทอรีต่อไปนี้จะถูกแยกออกโดยอัตโนมัติ:
ตัวอย่าง คำสั่งต่อไปนี้ไม่รวมไฟล์ใดๆ ในไดเร็กทอรีที่เรียกว่า backup หรือร่าง และไฟล์ใดๆ ที่ชื่อลงท้ายด้วย "copy)" เป็น PXL_20231006_063121958 (สำเนาอื่น) .jpg:
immich-go -server=xxxxx -key=yyyyy upload -exclude-files=backup/ -exclude-files=draft/ -exclude=copy). * /path/to/your/files
ตัวเลือกพิเศษสำหรับการจัดการ Google Photos:
พารามิเตอร์ | คำอธิบาย | ค่าเริ่มต้น |
---|---|---|
-google-photos | นำเข้าจากไฟล์เก็บถาวรที่มีโครงสร้างของ Google Photos โดยสร้างอัลบั้มที่เกี่ยวข้องขึ้นมาใหม่ | |
-from-album="GP Album" | สร้างอัลบั้มใน immich และนำเข้าเนื้อหาของอัลบั้ม | |
-create-albums | ควบคุมการสร้างอัลบั้ม Google Photos ใน Immich | TRUE |
-keep-untitled-albums | อัลบั้มที่ไม่มีชื่อจะถูกนำเข้าไปยัง immich โดยมีชื่อโฟลเดอร์เป็นชื่อ | FALSE |
-use-album-folder-as-name | ใช้ชื่อโฟลเดอร์แทนชื่ออัลบั้ม | FALSE |
-keep-partner | ระบุการรวมหรือการยกเว้นภาพถ่ายที่พันธมิตรถ่าย | TRUE |
-partner-album="partner's album" | นำเข้าเนื้อหาจากพันธมิตรไปยังอัลบั้มที่กำหนด | |
-discard-archived | อย่านำเข้าเนื้อหาที่เก็บถาวร | FALSE |
-auto-archive | เก็บรูปภาพที่เก็บไว้ใน Google Photos โดยอัตโนมัติ | TRUE |
-upload-when-missing-JSON | อัปโหลดรูปภาพที่ไม่เกี่ยวข้องกับไฟล์ข้อมูลเมตา JSON | FALSE |
อ่านที่นี่เพื่อทำความเข้าใจว่าเหตุใดการนำ Google Photos กลับบ้านจึงไม่ใช่เรื่องง่าย
ขณะนี้ตรวจพบการระเบิดตามสคีมานี้:
ภาพทั้งหมดจะต้องถ่ายในช่วงเวลาเดียวกัน ภาพปกจะเป็นภาพหลักของสแต็ก
ควรถ่ายภาพทั้งสองภาพในนาทีเดียวกัน ภาพ JPG จะเป็นหน้าปก
โปรดเปิดประเด็นเพื่อให้ครอบคลุมความเป็นไปได้มากขึ้น
เพื่อให้เห็นภาพ นี่คือคำสั่งในการนำเข้ารูปภาพจากไฟล์ Takeout ของ Google Photos ที่บันทึกระหว่างวันที่ 1 ถึง 30 มิถุนายน 2019 ขณะที่สร้างอัลบั้มโดยอัตโนมัติ
./immich-go -server=http://mynas:2283 -key=zzV6k65KGLNB9mpGeri9n8Jk1VaNGHSCdoH1dY8jQ upload
-create-albums -google-photos -date=2019-06 ~ /Download/takeout- * .zip
Immich-go รับข้อมูลแรกที่มีอยู่ตามลำดับต่อไปนี้
photoTakenTime
PXL_20220909_154515546.jpg
PXL_20220909_154515546.jpg
/photos/2022/11/09/IMG_1234.HEIC
geoDataExif
geoData
ของ Google Photos JSONlocationEnrichment
immich-go
รับวันที่ของรูปภาพจากไฟล์ JSON ที่เกี่ยวข้อง
เซิร์ฟเวอร์ละเว้นวันที่ที่ระบุโดย immich-go และรับวันที่ของ MP4 แม้ว่าจะไม่ถูกต้องก็ตาม
ดู #322 การประทับเวลาการสร้างจากข้อมูลเมตาไม่ถูกต้อง
Immich-go พยายามกำหนดวันที่จับภาพด้วยชื่อไฟล์หรือเส้นทางของไฟล์
อดีต:
เส้นทาง | วันที่ถ่ายภาพ |
---|---|
รูปภาพ/อัลบั้ม/PXL_20220909_154515546.jpg | 09-09-2022 15:51:55 |
ภาพถ่าย/สแกน/19991231.jpg | 31-12-2542 00:00:00 น |
photos/20221109/IMG_1234.HEIC | 19-11-2565 00:00:00 น |
รูปภาพ/2022.11.09T20.30/IMG_1234.HEIC | 19-11-2565 20:30:00 น |
รูปภาพ/2022/11/09/IMG_1234.HEIC | 19-11-2565 00:00:00 น |
หากไม่สามารถใช้เส้นทางเพื่อกำหนดวันที่จับภาพได้ immich-go อ่าน metadata
ของไฟล์หรือ exif
duplicate
ใช้คำสั่งนี้เพื่อวิเคราะห์เนื้อหาของเซิร์ฟเวอร์ immich
ของคุณเพื่อค้นหาไฟล์ใดๆ ที่ใช้ชื่อไฟล์เดียวกัน วันที่จับภาพ แต่มีขนาดแตกต่างกัน ก่อนที่จะลบสำเนาที่ด้อยกว่า ระบบจะรับอัลบั้มทั้งหมดที่มีอยู่ และเพิ่มสำเนาที่เหนือกว่าลงไป
พารามิเตอร์ | คำอธิบาย | ค่าเริ่มต้น |
---|---|---|
-yes | ถือว่าใช่กับทุกคำถาม | FALSE |
-date | ตรวจสอบเฉพาะสินทรัพย์ที่มีวันที่จับในช่วงที่กำหนด | 1850-01-04,2030-01-01 |
-ignore-tz-errors | ละเว้นความแตกต่างของเขตเวลาเมื่อค้นหารายการที่ซ้ำกัน | FALSE |
-ignore-extension | ละเว้นนามสกุลไฟล์เมื่อค้นหารายการที่ซ้ำกัน | FALSE |
immich
หลังจากรวมไฟล์เก็บถาวรของ Google Photos และไฟล์ต้นฉบับแล้วคำสั่งนี้ตรวจสอบเนื้อหาเซิร์ฟเวอร์ immich ลบอิมเมจคุณภาพต่ำ และเก็บรักษาอัลบั้ม
./immich-go -server=http://mynas:2283 -key=zzV6k65KGLNB9mpGeri9n8Jk1VaNGHSCdoH1dY8jQ duplicate -yes
stack
คำสั่ง มีการแนะนำความเป็นไปได้ในการซ้อนภาพด้วย immich
เวอร์ชัน 1.83 ให้ใช้มันเพื่อจัดกลุ่มภาพต่อเนื่องและ jpg/raw เข้าด้วยกัน
พารามิเตอร์ | คำอธิบาย | ค่าเริ่มต้น |
---|---|---|
-yes | ถือว่าใช่กับทุกคำถาม | FALSE |
-date=date_range | ตรวจสอบเฉพาะสินทรัพย์ที่มีวันที่จับในช่วงที่กำหนด | 1850-01-04,2030-01-01 |
tool
คำสั่ง คำสั่งนี้จะแนะนำเครื่องมือบรรทัดคำสั่งเพื่อจัดการเซิร์ฟเวอร์ immich
ของคุณ
album delete [regexp]
คำสั่งนี้จะลบอัลบั้มที่ตรงกับรูปแบบที่กำหนด
-yes
ถือว่าใช่กับทุกคำถาม (ค่าเริ่มต้น: FALSE)
./immich-go -server=http://mynas:2283 -key=zzV6k65KGLNB9mpGeri9n8Jk1VaNGHSCdoH1dY8jQ tool album delete d {4}- d {2}- d {2}
คำสั่งนี้จะลบอัลบั้มทั้งหมดที่สร้างด้วยรูปแบบ YYYY-MM-DD
การติดตั้ง immich-go
เป็นกระบวนการที่ไม่ซับซ้อน เยี่ยมชมหน้ารุ่นล่าสุดและเลือกไฟล์ไบนารีที่เข้ากันได้กับระบบของคุณ:
ดาวน์โหลดไฟล์เก็บถาวรที่สอดคล้องกับระบบปฏิบัติการ/สถาปัตยกรรมของคุณบนเครื่องของคุณและขยายขนาด
เปิดหน้าต่างคำสั่ง ไปที่ไดเร็กทอรีที่มี immich-go อยู่ และพิมพ์คำสั่ง immich-go
พร้อมด้วยพารามิเตอร์และคำสั่งบังคับ
สำหรับการติดตั้งตามแหล่งที่มา ตรวจสอบให้แน่ใจว่าคุณมีเครื่องมือพัฒนาภาษา Go ที่จำเป็น (https://go.dev/doc/install) อยู่แล้ว ดาวน์โหลดไฟล์ต้นฉบับหรือโคลนพื้นที่เก็บข้อมูล
go build -ldflags " -X 'main.version= $( git describe --tag ) ' -X 'main.date= $( date ) ' "
immich-go
บรรจุด้วย nix และแจกจ่ายผ่าน nixpkgs คุณสามารถลอง immich-go
โดยไม่ต้องติดตั้งด้วย:
nix-shell -I " nixpkgs=https://github.com/NixOS/nixpkgs/archive/nixos-unstable-small.tar.gz " -p immich-go
# Or with flakes enabled
nix run " github:nixos/nixpkgs?ref=nixos-unstable-small#immich-go " -- -help
หรือคุณสามารถเพิ่ม immich-go
ไปยัง configuration.nix
ของคุณได้ในส่วน environment.systemPackages
ขอชื่นชมทีม Immich สำหรับโปรเจ็กต์ที่น่าทึ่งของพวกเขา! -
โปรแกรมนี้ใช้ไลบรารีบุคคลที่สามดังต่อไปนี้:
ขอบคุณมากสำหรับผู้ร่วมโครงการ: