ในโปรเจ็กต์ของเรา เรากำลังจัดเก็บออบเจ็กต์ไว้ในบัคเก็ต S3 โดยเปิดใช้งานการกำหนดเวอร์ชัน ไม่มีตรรกะบนเซิร์ฟเวอร์นอกเหนือจากการสร้าง URI ที่ลงนามเพื่อให้ไคลเอ็นต์ใช้ เราอยากจะคงไว้เช่นนี้เนื่องจากเราต้องการให้ลูกค้าดำเนินการประมวลผลทั้งหมด
ถึงปัญหา. เราสามารถสร้าง URI ที่ลงนามสำหรับวัตถุ GET และ PUT สำหรับวัตถุทั้งหมดได้สำเร็จ แต่เราไม่สามารถสร้าง URI สำหรับการแสดงรายการเวอร์ชันที่มีอยู่ทั้งหมดได้
นี่คือตัวอย่างของ GET-url บนออบเจ็กต์ในหนึ่งในบัคเก็ตของเราที่ใช้งานได้ (99/2 คือโฟลเดอร์ในบัคเก็ต): https://bucketname.s3.amazonaws.com/99/2?AWSAccessKeyId=ourkey&Signature=signature&Expires=1410784420
ตามเอกสาร (GET เวอร์ชัน) เราควรจะ ผนวก ?versions และเวอร์ชันต่างๆ เราได้ลองทำสิ่งต่อไปนี้แล้ว: https://bucketname.s3.amazonaws.com/99/2?AWSAccessKeyId=ourkey&Signature=signature&Expires=1410784420&versions
ซึ่งส่งผลให้เบราว์เซอร์บ่นว่าลายเซ็นผิด ไม่มี "?versions" ถ้าฉันอ่าน เอกสาร ฉันจะตีความตามที่ควรจะเป็น จะไม่รวมอยู่ในลายเซ็นเว้นแต่ว่าเราจะผนวกค่าลงไปด้วย ซึ่งเราไม่ได้ใส่ไว้ด้วย ปัญหาคือไม่สำคัญว่าฉันจะเพิ่มมันลงในการสร้างลายเซ็นหรือไม่เนื่องจากยังคงล้มเหลวโดยมีข้อผิดพลาด "ไม่มีทรัพยากรย่อย ?versions สำหรับคีย์"
มีใครบางคนที่สร้าง uri ที่ลงนามแล้วสำหรับวัตถุเพื่อแสดงรายการเวอร์ชันหรือไม่ เราอยากได้คำแนะนำเกี่ยวกับสิ่งที่เราทำผิดจริงๆ ฉันอยากจะชี้ให้เห็นว่าเราไม่ได้ใช้ตัวสร้าง URI ในตัวเนื่องจากเราไม่สามารถทำให้มันตรงตามความต้องการของเราได้