Tôi đang phát triển mã cho lực lượng bán hàng. Chúng tôi đang sử dụng ứng dụng 'Force.com cho Amazon Web Services' từ Appexchange. Ứng dụng được cung cấp bởi Amazon.Amazon S3: Lỗi lạ - 'Đôi khi' SignatureDoesNotMatch, đôi khi nó
Tôi đang tải xuống tệp từ Amazon S3 trên máy.
Đôi khi tôi nhận được lỗi được đề cập dưới đây. Điều thú vị là, đôi khi tôi nhận được lỗi này, phần còn lại của thời gian nó hoạt động, ngay cả đối với cùng một tập tin.
<Error>
<Code>SignatureDoesNotMatch</Code>
<Message>
The request signature we calculated does not match the signature you provided. Check your key and signing method.
</Message>
Tôi đã thử sử dụng cả hai mẫu URL do Amazon cung cấp. Hết hạn được đặt cho 1 giờ sau khi tạo liên kết, do đó có thể không phải là vấn đề.
URL1:- http://adminportal.s3.amazonaws.com/sample.pdf?AWSAccessKeyId=AKIAIRUZSRRCVSLXZCIA&Expires=1372653478&Signature=RvMJ1gJL+qNKmnRkqzuytmlUTGQ=
URL2:- http://s3.amazonaws.com/adminportal/sample.pdf?AWSAccessKeyId=AKIAIRUZSRRCVSLXZCIA&Expires=1372658253&Signature=%2FmI0m0PTlHJpJ%2FP5d%2FX3OApqzcI%3D
Chữ ký được tạo bởi lớp do Amazon cung cấp, tôi đoán nó phải hoạt động tốt mọi lúc.
Ai đó có thể giải thích tại sao S3 chỉ cung cấp lỗi này đôi khi?
bạn đã lưu ngày của tôi! – Raeesaa
Bạn có nghĩa là '+' sẽ được thay thế bằng một số ký tự đặc biệt. Tôi có mã này: 'var signature = crypto.createHmac ('sha1', AWS_SECRET_KEY) .update (put_request) .digest ('base64');' 'signature = encodeURIComponent (signature.trim());' ' signature = signature.replace ('% 2B', '+'); ' nên dòng cuối cùng là 'signature = signature.replace (' + ','% 2B ');' hoặc nó sẽ bị xóa? – vinit
Tôi yêu cầu bạn bởi vì nó rất khó để tái tạo các trường hợp thử nghiệm, vì vậy muốn chắc chắn từ bạn. – vinit