ขณะรันโค้ดต่อไปนี้:
import boto3
BUCKET = 'bwd-plfb'
s3 = boto3.client('s3',use_ssl = False)
resp = s3.list_objects_v2(Bucket = BUCKET )
s3.download_file(BUCKET,'20171018/OK/OK_All.zip','test.zip')
ฉันได้รับข้อผิดพลาดต่อไปนี้:
botocore.exceptions.ClientError: An error occurred
(SignatureDoesNotMatch) when calling the GetObject operation: The request
signature we calculated does not match the signature you provided. Check
your key and signing method.
สิ่งที่ฉันได้ลองไปแล้ว:
- ตรวจสอบ ID คีย์การเข้าถึงและคีย์การเข้าถึงข้อมูลลับที่กำหนดค่าใน aws cli อีกครั้ง (การรัน aws กำหนดค่าในพร้อมท์คำสั่ง) - ถูกต้อง
- กำลังพยายามแสดงรายการวัตถุที่ฝากข้อมูลโดยใช้ boto3 - ทำงานได้สำเร็จ ดูเหมือนว่าปัญหาจะเกิดขึ้นเมื่อพยายามดาวน์โหลดไฟล์
- การใช้ปลั๊กอิน Chrome เพื่อเรียกดูเนื้อหาที่เก็บข้อมูลและดาวน์โหลดไฟล์: ปลั๊กอิน Chrome มันทำงานได้สำเร็จ
สิ่งที่น่าสนใจคือการดาวน์โหลดไฟล์บางไฟล์ได้ แต่ไม่ใช่ทั้งหมด ฉันดาวน์โหลดไฟล์ซึ่งก่อนหน้านี้ใช้งานได้ก่อน 20 ครั้งติดต่อกันเพื่อดูว่าข้อผิดพลาดเกิดขึ้นเป็นระยะๆ หรือไม่ มันได้ผลทั้งหมด 20 ครั้ง ฉันทำสิ่งเดียวกันนี้กับไฟล์ที่ไม่เคยใช้งานได้มาก่อนและไม่ได้ดาวน์โหลดเลยถึง 20 ครั้ง
ฉันเห็นโพสต์อื่น ๆ ใน stackoverflow บอกว่าคีย์ api และคีย์การเข้าถึงอาจไม่ถูกต้อง อย่างไรก็ตาม ฉันไม่เชื่อว่าเป็นเช่นนั้นหากฉันสามารถแสดงรายการออบเจ็กต์และดาวน์โหลดไฟล์ (อันที่ทำ & ไม่ทำงานผ่าน boto3) โดยใช้ปลั๊กอิน Chrome S3
ไม่มีใครมีข้อเสนอแนะเกี่ยวกับสิ่งที่อาจเป็นปัญหาที่นี่หรือไม่
ขอบคุณ
use_ssl=False
? - person hjpotter92   schedule 27.12.2017