ให้บริการไฟล์คงที่ของ AppEngine

วิธีที่ดีที่สุดในการให้บริการไฟล์รูปภาพคงที่และจาวาสคริปต์โดยใช้ appengine คืออะไร

จากสิ่งที่ฉันเห็นมีสองวิธีที่เกี่ยวข้อง โดยเก็บไฟล์ไว้ในไดเร็กทอรี war ของบริการที่คุณกำลังอัปโหลด ณ เวลาออกแบบ ทางเลือกอื่นคือการใช้ blobstore โดยที่ไฟล์จะถูกอัพโหลดหลังจากที่บริการมีแล้ว

ฉันเห็นว่ามีข้อ จำกัด 150mb สำหรับไฟล์ทรัพยากรในไดเร็กทอรี war (โดยจำกัดไว้ที่ 10mb ต่อไฟล์) แต่จากสิ่งที่ฉันเห็นนี่เป็นพื้นที่ 'ว่าง' ที่ง่ายกว่า มันช้ากว่า blobstore หรือไม่? ลักษณะไดนามิกของ blobstore นั้นไม่ค่อยสนใจฉัน ดังนั้นไดเร็กทอรีจึงดูเหมือนเป็นตัวเลือกที่ดีกว่า

ใครสามารถให้คำแนะนำใด ๆ ? ข้อสรุปของฉันถูกต้องหรือไม่?


person Venatu    schedule 27.09.2011    source แหล่งที่มา


คำตอบ (3)


เป็นการดีที่จะใส่ไฟล์จาวาสคริปต์และรูปภาพลงในไดเร็กทอรีไฟล์ทรัพยากรของคุณบน appengine จากประสบการณ์ของฉัน ไฟล์ blobstore และทรัพยากรมีลักษณะการทำงานที่คล้ายคลึงกัน

อย่างไรก็ตาม เนื่องจากความเร็วไซต์มีความสำคัญมากขึ้น การใช้ CDN จึงอาจเหมาะสมกว่าในการรับไฟล์คงที่ไปยังผู้ใช้ของคุณเร็วขึ้น

หากจาวาสคริปต์แบบคงที่เป็นสิ่งที่พบได้ทั่วไปเช่น jquery หรือ jquery-ui ฉันขอแนะนำให้ใช้ google libraries API ทันที: http://code.google.com/apis/libraries/devguide.html

person nottombrown    schedule 27.09.2011
comment
ไฟล์ Blobstore และทรัพยากรอาจดูเหมือนมีลักษณะเฉพาะด้านประสิทธิภาพที่คล้ายคลึงกัน แต่ก็ไม่ใช่วิธีในการเซิร์ฟเวอร์ JS ลองใช้สแตติกไฟล์ คุณอาจจะแปลกใจมาก - person Dave W. Smith; 28.09.2011

วิธีที่เหมาะสมที่สุดในการให้บริการไฟล์คงที่ (รูปภาพ, จาวาสคริปต์, CSS) คือการประกาศโดยใช้ <static-files> ใน appengine-web.xml

ย่อหน้าแรกของ http://code.google.com/appengine/docs/java/config/appconfig.html#Static_Files_and_Resource_Files วางโครงร่างไว้อย่างดี:

เว็บแอปพลิเคชันจำนวนมากมีไฟล์ที่ให้บริการโดยตรงไปยังเบราว์เซอร์ของผู้ใช้ เช่น รูปภาพ สไตล์ชีต CSS หรือโค้ด JavaScript ของเบราว์เซอร์ สิ่งเหล่านี้เรียกว่าไฟล์คงที่เนื่องจากไม่มีการเปลี่ยนแปลง และสามารถได้รับประโยชน์จากเว็บเซิร์ฟเวอร์สำหรับเนื้อหาคงที่โดยเฉพาะ App Engine ให้บริการไฟล์คงที่จากเซิร์ฟเวอร์เฉพาะและแคชที่แยกจากเซิร์ฟเวอร์แอปพลิเคชัน

person Dave W. Smith    schedule 28.09.2011

หากเป็นเพียงเว็บไซต์ปกติที่โฮสต์รูปภาพและไฟล์จาวาสคริปต์ โดยทั่วไปควรปฏิบัติตามวิธีมาตรฐานในการใส่ลงในไดเร็กทอรี war ฉันไม่เห็นประโยชน์มากนักในการนำไฟล์เหล่านั้นไปไว้ใน blobstore เนื่องจากคุณบอกว่าไม่สนใจธรรมชาติแบบไดนามิก ไม่ต้องพูดถึงความซับซ้อนอีกระดับที่คุณเพิ่มโดยใช้ blobstore

person Yudong Li    schedule 28.09.2011