ฉันพยายามดาวน์โหลดสำเนา postgresql db จาก Amazon S3 ใน cygwin แต่มันให้ผลเป็นศูนย์ทั้งกระดานให้ไฟล์ที่ไร้ประโยชน์ นี่คือคำสั่ง curl ของฉัน:
curl `heroku.bat pgbackups:url` -o latest.dump --verbose
ซึ่งให้ผลตอบแทน: * สถานะ: INIT => CONNECT จัดการ 0x60002de60; บรรทัด 1011 (การเชื่อมต่อ # -5000) * ไม่พบชื่อโฮสต์ในแคช DNS * กำลังลอง 54.231.1.232 ... * เพิ่มหมายเลขอ้างอิง: conn: 0x600069f80 * เพิ่มหมายเลขอ้างอิง: ส่ง: 0 * กำลังเพิ่มหมายเลขอ้างอิง: 0 * Curl_addHandleToPipeline: ความยาว: 1 * 0x60002de60 เป็นที่ส่งหัวท่อ! * - คอน 0 (0x600069f80) send_pipe: 1, recv_pipe: 0 * สถานะ: CONNECT => WAITCONNECT จัดการ 0x60002de60; บรรทัดที่ 1058 (การเชื่อมต่อ # 0)% รวม% ที่ได้รับ% Xferd เวลาความเร็วเฉลี่ยเวลาเวลาปัจจุบันปริมาณที่อัพโหลดอัพโหลดรวมที่ใช้ไปทางซ้ายความเร็ว 0 0 0 0 0 0 0 0 0 -: - - - - -: - -: -: - 0 * เชื่อมต่อกับ s3.amazonaws.com (54.231.1 232) พอร์ต 443 (# 0) * ประสบความสำเร็จในการตั้งค่าสถานที่ตรวจสอบใบรับรอง: * CAfile: /usr/ssl/certs/ca-bundle.crt CApath: ไม่มี * SSLv3, การจับมือ TLS, สวัสดีลูกค้า (1):} [ข้อมูลไม่แสดง ] * STATE: WAITCONNECT => PROTOCONNECT จัดการ 0x60002de60; บรรทัด 1171 (การเชื่อมต่อ # 0) * SSLv3, การจับมือ TLS, เซิร์ฟเวอร์สวัสดี (2): {[ไม่แสดงข้อมูล] * SSLv3, การจับมือ TLS, CERT (11): {[ไม่แสดงข้อมูล] * SSLv3, การจับมือกัน TLS, เซิร์ฟเวอร์ (14): {[ไม่แสดงข้อมูล] * SSLv3, การจับมือ TLS, การแลกเปลี่ยนคีย์ลูกค้า (16):} [ไม่แสดงข้อมูล] * SSLv3, การเปลี่ยนรหัส TLS, สวัสดีลูกค้า (1):} [ไม่แสดงข้อมูล] * SSLv3 , TLS handshake, เสร็จสิ้น (20):} [ไม่แสดงข้อมูล] * SSLv3, เปลี่ยนรหัส TLS, สวัสดีลูกค้า (1): {[ไม่แสดงข้อมูล] * SSLv3, การจับมือ TLS เสร็จแล้ว (20): {[ไม่แสดงข้อมูล] * การเชื่อมต่อ SSL โดยใช้ AES128-SHA * ใบรับรองเซิร์ฟเวอร์: ทำซ้ำ * ยืนยันใบรับรอง SSL แล้ว * STATE: PROTOCONNECT => จัดการกับ 0x60002de60; บรรทัด 1190 (การเชื่อมต่อ # 0)
GET /hkpgbackups/app21475484@heroku.com/b007.dump?AWSA ตัวแทนผู้ใช้ใหม่: curl / 7.34.0 โฮสต์: s3.amazonaws.com ยอมรับ: /
* STATE: DO => DO_DONE handle 0x60002de60; line 1263 (connection #0) * STATE: DO_DONE => WAITPERFORM handle 0x60002de60; line 1384 (connection #0) * STATE: WAITPERFORM => PERFORM handle 0x60002de60; line 1395 (connection #0) * HTTP 1.1 or later with persistent connection, pipelining supported < HTTP/1.1 400 Bad Request < Transfer-Encoding: chunked < Date: Wed, 02 Jul 2014 21:03:39 GMT < Connection: close * Server AmazonS3 is not blacklisted < Server: AmazonS3 { [data not shown] * STATE: PERFORM => DONE handle 0x60002de60; line 1565 (connection #0) 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 * Closing connection 0
การรันคำสั่งนี้ในเทอร์มินัล OS X จากซับเน็ตเดียวกันให้ผลลัพธ์ส่วนใหญ่เหมือนกันยกเว้นฉันจะได้รับ 200 สำหรับการร้องขอ http / 1.1
ดังนั้นทำไมฉันจะได้รับ 200 สำหรับ Mac แต่ 400 สำหรับ cygwin ใน Windows ฉันพยายามกำจัดตัวแปรที่เป็นไปได้อื่น ๆ แต่ cygwin บนเครื่องนี้ไม่ได้รับ 200 ฉันสามารถบอกคุณได้ว่า url redacted url ใน cygwin ตรงกับ url ในผลลัพธ์คำสั่ง heroku และ mac เดียวกันเท่าที่ฉันทำได้ ดูยกเว้นรหัสการเข้าถึง AWS ไม่เห็นทำไมพวกเขาจะแตกต่างกันอย่างไร
ทำไมถึงแตกต่างกัน?