CMD में काम करने वाले कर्ल कमांड का सामान्य रूप है:
कर्ल -ओ latest.dump एल " https://s3.amazonaws.com/hkpgbackups/app28197640@heroku.com/xxxx.dump?AWSAccessKeyId=AKIAJSCBEZJRDOTGNGZQ&Expires=1411489500&Signature=%2F5zwQNZNN0H2XSR4wSqQ%2FFExBdI%3D "
लेकिन url गतिशील रूप से उत्पन्न होता है इसलिए मेरे लिए इसे .bat स्क्रिप्ट में रखना चाहिए। ठीक है, कोई समस्या नहीं है इसलिए यहाँ मेरी .bat स्क्रिप्ट है कि कागज पर काम करना चाहिए।
@echo off
for /f "delims=" %%a in ('heroku pgbackups:url') do @set this_url=%%a
ECHO %this_url%
curl -v -o latest.dump -L %this_url%
लेकिन आउटपुट की घंटी बजती है क्योंकि पहले 'और' के रूप में आप उम्मीद कर सकते हैं। की गूंज this_url
से पता चलता है उद्धरण के साथ पूर्ण स्ट्रिंग। मैं इस स्ट्रिंग को उद्धरणों के साथ संलग्न करने के लिए कैसे अपील कर सकता हूं या मजबूर कर सकता हूं?
मैंने प्रयास किया है लेकिन यह उसी प्रकार की त्रुटि देता है:
cmd /k ""curl -v -o latest.dump -l" "('heroku pgbackups:url')""
कुछ पूछ सकते हैं कि यूनिक्स या CYGWIN में ऐसा क्यों नहीं करते? मैंने वो पहले किया। कमांड मेरे ओएस एक्स पर्सनल मशीन पर पूरी तरह से काम करता है। तो यह CYGWIN में काम करना चाहिए? वैसे मुझे एक ही तरह की त्रुटियाँ मिलती हैं।
मैंने uri_escape
लाइब्रेरी का उपयोग करके एक पर्ल स्क्रिप्ट शामिल करने का प्रयास किया है और इसे डाला है। लेकिन यह जिस URL से गुजरता है वह कर्ल द्वारा पहचाना नहीं जाता है।
एकल उद्धरणों के भीतर आउटपुट को मजबूर करना URL को सही करता है, लेकिन समापन एकल उद्धरण URL के अंतिम कुछ वर्णों के भीतर रखा जाता है जो इसे कर्ल करने के लिए बेकार कर देता है।
heroku pgbackups:url
CMD कंसोल का आउटपुट है:
"https://s3.amazonaws.com/hkpgbackups/app28197640@heroku.com/b080.dump?AWSAccess
KeyId=AKIAJSCBEZJRDOTGNGZQ&Expires=1411657655&Signature=MqzqBitAN7MADiLAsdAN4ZQk
RH0%3D"
ऊपर .bat फ़ाइल का आउटपुट है:
https://s3.amazonaws.com/hkpgbackups/app28197640@heroku.com/b080.dump?AWSAccessK
eyId=AKIAJSCBEZJRDOTGNGZQ
'Expires' is not recognized as an internal or external command,
operable program or batch file.
'Signature' is not recognized as an internal or external command,
operable program or batch file.
* About to connect() to s3.amazonaws.com port 443 (#0)
* Trying 205.251.243.66... % Total % Received % Xferd Average Speed Ti
me Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0co
nnected
* Connected to s3.amazonaws.com (205.251.243.66) port 443 (#0)
* SSLv3, TLS handshake, Client hello (1):
} [data not shown]
* SSLv3, TLS handshake, Server hello (2):
{ [data not shown]
* SSLv3, TLS handshake, CERT (11):
{ [data not shown]
* SSLv3, TLS handshake, Server finished (14):
{ [data not shown]
* SSLv3, TLS handshake, Client key exchange (16):
} [data not shown]
* SSLv3, TLS change cipher, Client hello (1):
} [data not shown]
* SSLv3, TLS handshake, Finished (20):
} [data not shown]
* SSLv3, TLS change cipher, Client hello (1):
{ [data not shown]
* SSLv3, TLS handshake, Finished (20):
{ [data not shown]
* SSL connection using AES128-SHA
* Server certificate:
* subject: C=US; ST=Washington; L=Seattle; O=Amazon.com Inc.; CN=s3.amazo
naws.com
* start date: 2014-04-12 00:00:00 GMT
* expire date: 2015-04-13 23:59:59 GMT
* subjectAltName: s3.amazonaws.com matched
* issuer: C=US; O=VeriSign, Inc.; OU=VeriSign Trust Network; OU=Terms of
use at https://www.verisign.com/rpa (c)10; CN=VeriSign Class 3 Secure Server CA
- G3
* SSL certificate verify result: unable to get local issuer certificate (
20), continuing anyway.
> GET /hkpgbackups/app28197640@heroku.com/b080.dump?AWSAccessKeyId=AKIAJSCBEZJRD
OTGNGZQ HTTP/1.1
> User-Agent: curl/7.21.7 (amd64-pc-win32) libcurl/7.21.7 OpenSSL/0.9.8r zlib/1.
2.5
> Host: s3.amazonaws.com
> Accept: */*
>
< HTTP/1.1 403 Forbidden
< x-amz-request-id: 4566C5AB208C1248
< x-amz-id-2: zF/zr+fbR/pE7nvF7vvUmOdZQeMzjSBI6SPLKH14LGAI5JAb2xyoLhuuDGBDhqcq
< Content-Type: application/xml
< Transfer-Encoding: chunked
< Date: Thu, 25 Sep 2014 14:51:46 GMT
< Server: AmazonS3
<
{ [data not shown]
100 231 0 231 0 0 592 0 --:--:-- --:--:-- --:--:-- 704
* Connection #0 to host s3.amazonaws.com left intact
* Closing connection #0
* SSLv3, TLS alert, Client hello (1):
} [data not shown]
'Expires' is not recognized as an internal or external command,
operable program or batch file.
'Signature' is not recognized as an internal or external command,
operable program or batch file.
403 त्रुटि इंगित करती है कि url मुंग गया था, लेकिन अन्यथा यह गुजरता था या मुझे 400 त्रुटि मिली होगी। स्क्रिप्ट में किसी कारण से, "&" पुनर्निर्देशित हो जाते हैं क्योंकि उन्हें स्क्रिप्ट में व्याख्या की जाती है।
यदि आप मेरे थे, तो आप इस कमांड को गतिशील रूप से इस URL को कैसे चलाएंगे, इसलिए इसकी व्याख्या CMD, bash, आदि द्वारा नहीं की जाती है? thanx, सैम