EXIFhttps://photos.sambecker.com

NEXT_PUBLIC_SITE_DOMAIN (เช่น photos.domain.com-ใช้ใน Permalinks และเห็นใน NAV บนขวา)AUTH_SECRETADMIN_EMAILADMIN_PASSWORD/adminpnpm i เพื่อติดตั้งการพึ่งพาvercel loginvercel link เพื่อเชื่อมต่อ CLI เข้ากับโครงการของคุณvercel dev เพื่อเริ่มเซิร์ฟเวอร์ dev ด้วยตัวแปรสภาพแวดล้อมที่มีการจัดการ vercel
การใช้งานคุณสมบัตินี้จะส่งผลให้ค่าธรรมเนียมจาก OpenAI เมื่อเปิดใช้งานการสร้างข้อความ AI ให้ติดตามการบรรเทาที่แนะนำทั้งหมดเพื่อหลีกเลี่ยงการเรียกเก็บเงินและการโจมตีที่ไม่คาดคิด ตรวจสอบให้แน่ใจว่าตัวแปรสภาพแวดล้อม Key Secret OpenAI ของคุณไม่ได้ถูกนำหน้าด้วย next_public
OPENAI_SECRET_KEYAI_TEXT_AUTO_GENERATED_FIELDS = title, semanticall (ค่าเริ่มต้น)titlecaptiontagssemanticnone@vercel/analytics รวมอยู่แล้ว)@vercel/speed-insights แล้ว)พฤติกรรมแอปพลิเคชันสามารถเปลี่ยนแปลงได้โดยการกำหนดค่าตัวแปรสภาพแวดล้อมต่อไปนี้:
NEXT_PUBLIC_SITE_TITLE (เห็นในแท็บเบราว์เซอร์)NEXT_PUBLIC_SITE_DESCRIPTION (เห็นใน Nav, ภายใต้ชื่อ)NEXT_PUBLIC_SITE_ABOUT (เห็นในแถบด้านข้างของกริด - แท็กการจัดรูปแบบที่หลากหลายที่ยอมรับได้: <b> , <strong> , <i> , <em> , <u> , <br> ) NEXT_PUBLIC_GRID_HOMEPAGE = 1 แสดงเค้าโครงกริดในหน้าแรกNEXT_PUBLIC_DEFAULT_THEME = light | dark ชุดธีมเริ่ม NEXT_PUBLIC_DEFAULT_THEME = light | dark ที่ต้องการ (ค่าเริ่มต้นเป็น system เมื่อไม่ได้กำหนดค่า)NEXT_PUBLIC_PRO_MODE = 1 เปิดใช้งานการจัดเก็บภาพคุณภาพสูงขึ้น (ส่งผลให้การใช้พื้นที่จัดเก็บเพิ่มขึ้น)NEXT_PUBLIC_STATICALLY_OPTIMIZE_PAGES = 1 เปิดใช้งานการเพิ่มประสิทธิภาพแบบคงที่สำหรับหน้าเช่นแสดงหน้าในเวลาที่สร้าง (ส่งผลให้การใช้โครงการเพิ่มขึ้น) -NEXT_PUBLIC_STATICALLY_OPTIMIZE_OG_IMAGES = 1 เปิดใช้งานการเพิ่มประสิทธิภาพแบบคงที่สำหรับภาพ OG เช่นแสดงภาพในเวลาที่สร้าง (ส่งผลให้การใช้งานโครงการเพิ่มขึ้น) -NEXT_PUBLIC_MATTE_PHOTOS = 1 จำกัด ขนาดของแต่ละภาพและเปิดใช้งานเส้นขอบโดยรอบ (อาจเป็นประโยชน์สำหรับภาพถ่ายที่มีอัตราส่วนสูงด้าน)NEXT_PUBLIC_BLUR_DISABLED = 1 ป้องกันข้อมูลเบลอของภาพที่ถูกจัดเก็บและแสดง (อาจมีประโยชน์สำหรับการ จำกัด การใช้งาน postgres)NEXT_PUBLIC_GEO_PRIVACY = 1 ปิดใช้งานการรวบรวม/แสดงข้อมูลตามตำแหน่ง (NEXT_PUBLIC_HIDE_REPO_LINK = 1 ลบส่วนท้ายลิงก์ไปยัง repoNEXT_PUBLIC_ALLOW_PUBLIC_DOWNLOADS = 1 เปิดใช้งานการดาวน์โหลดภาพถ่ายสาธารณะสำหรับผู้เข้าชมทั้งหมด (NEXT_PUBLIC_PUBLIC_API = 1 เปิดใช้งาน API สาธารณะที่มีอยู่ที่ /apiNEXT_PUBLIC_IGNORE_PRIORITY_ORDER = 1 ป้องกันฟิลด์ priority_order ที่มีผลต่อคำสั่งภาพถ่ายNEXT_PUBLIC_HIDE_SOCIAL = 1 ลบปุ่ม x ออกจาก Share ModalNEXT_PUBLIC_HIDE_FILM_SIMULATIONS = 1 ป้องกันการจำลอง Fujifilm ที่แสดงในแถบด้านข้าง /grid และผลการค้นหา CMD-KNEXT_PUBLIC_HIDE_EXIF_DATA = 1 ซ่อนข้อมูล exif ในรายละเอียดภาพถ่ายและภาพ OG (อาจมีประโยชน์สำหรับพอร์ตการลงทุนซึ่งไม่ได้มุ่งเน้นไปที่การถ่ายภาพ)NEXT_PUBLIC_GRID_ASPECT_RATIO = 1.5 ตั้งค่าอัตราส่วนภาพสำหรับกระเบื้องกริด (ค่าเริ่มต้นเป็น 1 - การตั้งค่าเป็น 0 ลบข้อ จำกัด )NEXT_PUBLIC_SHOW_LARGE_THUMBNAILS = 1 ทำให้มั่นใจได้ว่ารูปขนาดย่อขนาดใหญ่ในมุมมองกริดภาพถ่ายNEXT_PUBLIC_OG_TEXT_ALIGNMENT = BOTTOM รักษา OG ภาพข้อความด้านล่างจัดตำแหน่ง (ค่าเริ่มต้นคือด้านบน) อะแดปเตอร์ที่เก็บข้อมูลเพียงตัวเดียวคือ Blob Vercel, CloudFlare R2 หรือ AWS S3 - สามารถใช้งานได้ทีละครั้ง ตามหลักการแล้วจะได้รับการกำหนดค่าก่อนที่จะอัปโหลดรูปภาพ (ดูปัญหา #34 สำหรับการพิจารณาการย้ายถิ่น) หากคุณมีอะแดปเตอร์หลายตัวคุณสามารถตั้งค่าได้ตามที่ต้องการโดยการจัดเก็บ "AWS-S3," "CloudFlare-R2," หรือ "vercel-blob" ใน NEXT_PUBLIC_STORAGE_PREFERENCE
[{
"AllowedHeaders" : [ " * " ],
"AllowedMethods" : [
" GET " ,
" PUT "
],
"AllowedOrigins" : [
" http://localhost:3000 " ,
" https://{VERCEL_PROJECT_NAME}*.vercel.app " ,
" {PRODUCTION_DOMAIN} "
]
}]NEXT_PUBLIC_CLOUDFLARE_R2_BUCKET : ชื่อถังNEXT_PUBLIC_CLOUDFLARE_R2_ACCOUNT_ID : รหัสบัญชี (พบในหน้าภาพรวม R2)NEXT_PUBLIC_CLOUDFLARE_R2_PUBLIC_DOMAIN : ไม่ว่าจะเป็น "ของคุณ-ustom-domain.com" หรือ "pub-jf90908 ... S0D9F8S0S9DF.R2.dev" ( ไม่รวม "https: //" ในโดเมนของคุณ ))NEXT_PUBLIC ):CLOUDFLARE_R2_ACCESS_KEYCLOUDFLARE_R2_SECRET_ACCESS_KEY[{
"AllowedHeaders" : [ " * " ],
"AllowedMethods" : [
" GET " ,
" PUT "
],
"AllowedOrigins" : [
" http://localhost:* " ,
" https://{VERCEL_PROJECT_NAME}*.vercel.app " ,
" {PRODUCTION_DOMAIN} "
],
"ExposeHeaders" : []
}]NEXT_PUBLIC_AWS_S3_BUCKET : ชื่อถังNEXT_PUBLIC_AWS_S3_REGION : ภูมิภาคถังเช่น "US-East-1"{
"Version" : " 2012-10-17 " ,
"Statement" : [
{
"Effect" : " Allow " ,
"Action" : [
" s3:PutObject " ,
" s3:PutObjectACL " ,
" s3:GetObject " ,
" s3:ListBucket " ,
" s3:DeleteObject "
],
"Resource" : [
" arn:aws:s3:::{BUCKET_NAME} " ,
" arn:aws:s3:::{BUCKET_NAME}/* "
]
}
]
}NEXT_PUBLIC ):AWS_S3_ACCESS_KEYAWS_S3_SECRET_ACCESS_KEY Postgres Vercel สามารถเปลี่ยนไปเป็นผู้ให้บริการ Postgres ที่เข้ากันได้และรวมตัวกันโดยการอัปเดต POSTGRES_URL ผู้ให้บริการบางรายทำงานเฉพาะเมื่อ SSL ถูกปิดใช้งานซึ่งสามารถกำหนดค่าได้โดยการตั้งค่า DISABLE_POSTGRES_SSL = 1
6543DISABLE_POSTGRES_SSL = 1 สำหรับ repos forked คลิก "รหัส" จากนั้น "อัปเดตสาขา" จากหน้า repo หลัก หากคุณโคลนรหัสเดิมคุณสามารถสร้างส้อมจาก GitHub จากนั้นอัปเดตการเชื่อมต่อ GIT ของคุณจากการตั้งค่าโครงการ Vercel ของคุณ เมื่อคุณทำสิ่งนี้เสร็จแล้วคุณอาจต้องไปที่หน้าการปรับใช้โครงการของคุณคลิก•••, เลือก "สร้างการปรับใช้" และเลือก
main
บนเดสก์ท็อปเลือกเมนู•••ที่ด้านบนขวาถัดจากชื่อไซต์และเลือก "เลือกหลายรายการ" บนมือถือสามารถเข้าถึง "เลือกหลายรูป" ได้จากเมนูค้นหา จากตรงนั้นคุณสามารถดำเนินการแท็กจำนวนมากที่ชื่นชอบและลบการกระทำ
เทมเพลตนี้ปรับมุมมองหลักเช่น
/และ/gridเพื่อลดเวลาการโหลดของผู้เข้าชมให้น้อยที่สุด ดังนั้นเมื่อมีการเพิ่มภาพถ่ายแก้ไขหรือลบอาจใช้เวลาหลายนาทีสำหรับการเปลี่ยนแปลงเหล่านั้นเพื่อเผยแพร่ หากดูเหมือนว่าการเปลี่ยนแปลงจะไม่เกิดขึ้นให้ลองนำทางไปที่/admin/configurationและคลิก "ล้างแคช"
เมื่อเทมเพลตมีการพัฒนาฟิลด์ EXIF (เช่นเลนส์) ได้รับการเพิ่มข้อมูลเบลอถูกสร้างขึ้นด้วยวิธีการที่แตกต่างกันและมีการเพิ่มคุณสมบัติ AI/ความเป็นส่วนตัว ในการที่จะนำภาพถ่ายเก่าให้ทันสมัยให้คลิกปุ่ม 'ซิงค์' ถัดจากภาพถ่ายหรือใช้หน้าภาพถ่ายที่ล้าสมัย (
/admin/outdated) เพื่ออัปเดตแบทช์
บริการจำนวนมากเช่น iMessage, Slack และ X ต้องใช้การตอบสนองใกล้กับอินสแตนท์เมื่อคลี่เนื้อหาที่อิงกับลิงก์ เพื่อรับประกันการตอบสนองที่เพียงพอให้พิจารณาหน้าการแสดงผลและสินทรัพย์ภาพล่วงหน้าโดยการเปิดใช้งานการเพิ่มประสิทธิภาพแบบคงที่โดยการตั้งค่า
NEXT_PUBLIC_STATICALLY_OPTIMIZE_PAGES = 1และNEXT_PUBLIC_STATICALLY_OPTIMIZE_OG_IMAGES = 1โปรดทราบว่าสิ่งนี้จะเพิ่มการใช้งานแพลตฟอร์ม
โดยค่าเริ่มต้นภาพถ่ายทั้งหมดจะแสดงความกว้างเต็มโดยไม่คำนึงถึงการปฐมนิเทศ เปิดใช้งานการปูเพื่อแสดงภาพถ่ายแนวนอนและแนวตั้งที่เครื่องชั่งที่คล้ายกันโดยการตั้งค่า
NEXT_PUBLIC_MATTE_PHOTOS = 1
ความหนาแน่นของกริด Thumbnail (เห็นบน
/grid, ภาพรวมแท็กและชุดภาพถ่ายอื่น ๆ ) ขึ้นอยู่กับการกำหนดค่าอัตราส่วนภาพ (อัตราส่วน 1 หรือน้อยกว่ามีภาพถ่ายมากขึ้นต่อแถว) สิ่งนี้สามารถแทนที่ได้โดยการตั้งค่าNEXT_PUBLIC_SHOW_LARGE_THUMBNAILS = 1
ในขณะที่เส้นทางที่ซ่อนอยู่ทั้งหมด (
/tag/hidden/*) ต้องการการตรวจสอบความถูกต้องลิงก์ดิบไปยังสินทรัพย์ภาพถ่ายแต่ละรายการยังคงสามารถเข้าถึงได้ต่อสาธารณะ URL ที่สร้างขึ้นแบบสุ่มจากผู้ให้บริการจัดเก็บจะมีความปลอดภัยผ่านความสับสนเท่านั้น ใช้ด้วยความระมัดระวัง
นำทางไปยัง
/admin/configurationแล้วคลิก "Clear Cache"
นำทางไปยัง
/admin/configurationแล้วคลิก "Clear Cache" หากสิ่งนี้ไม่ได้ช่วยเปิดปัญหา
ขาดการกำหนดค่าอัตราส่วน Grid Grid เริ่มต้นคือ
1NEXT_PUBLIC_GRID_ASPECT_RATIOสามารถตั้งค่าเป็นหมายเลขใด ๆ (ตัวอย่างเช่น1.5สำหรับ 3: 2 ภาพ) หรือละเว้นโดยการตั้งค่าเป็น0
ข้อมูลการจำลอง Fujifilm ถูกเก็บไว้ในไบนารี MakerNote เฉพาะผู้ขายที่ฝังอยู่ในข้อมูล EXIF ภายใต้สถานการณ์บางอย่างตัวกลางอาจตัดข้อมูลนี้ออก ตัวอย่างเช่นมีปัญหาที่ทราบกันดีเกี่ยวกับ iOS ที่แก้ไขภาพเช่นการครอบตัดทำให้เกิดการสูญเสียข้อมูล makernote หากข้อมูลการจำลองหายไปให้ลองนำเข้าไฟล์ต้นฉบับเนื่องจากกล้องเก็บไว้ นอกจากนี้หากคุณสามารถยืนยันโหมดการจำลองคุณสามารถแก้ไขรูปภาพและเลือกด้วยตนเอง
ด้วยเหตุผลหลายประการเท่านั้นรองรับการวางแนว EXIF เท่านั้น: 1, 3, 6 และ 8 ได้รับการสนับสนุน ทิศทาง 2, 4, 5 และ 7 - ซึ่งใช้ประโยชน์จากการทำมิเรอร์ - ไม่ได้รับการสนับสนุน
รุ่นก่อนหน้าของเทมเพลตนี้สร้างข้อมูลเบลอบนไคลเอนต์ซึ่งแตกต่างกันจากเบราว์เซอร์ไปยังเบราว์เซอร์ ขณะนี้ข้อมูลถูกสร้างขึ้นอย่างสม่ำเสมอบนเซิร์ฟเวอร์ หากคุณต้องการอัปเดตข้อมูลเบลอสำหรับรูปภาพเฉพาะแก้ไขรูปภาพที่เป็นปัญหาไม่เปลี่ยนแปลงและเลือก "อัปเดต"
การหมดเวลาเริ่มต้นสำหรับการประมวลผลการอัปโหลดหลายครั้งคือ 60 วินาที (ขีด จำกัด สำหรับบัญชีงานอดิเรก) สามารถขยายได้ถึง 5 นาทีในบัญชี PRO โดยการตั้งค่า
maxDuration = 300ในsrc/app/admin/uploads/page.tsx
คุณอาจต้องซื้อเครดิตล่วงหน้าก่อนที่จะเข้าถึง OpenAI API ดูปัญหา #110 สำหรับการสนทนา
อาจเป็นไปได้ ดูปัญหา #116 สำหรับการสนทนา