簡體   English   中英

從S3下載Shell腳本wget-禁止錯誤

[英]Shell script wget download from S3 - Forbidden error

我正在嘗試使用Shell腳本和命令wget從Amazon S3下載文件。 該文件具有公共權限,我可以使用標准瀏覽器下載該文件。 到目前為止,這是我在腳本中所擁有的:

wget --no-check-certificate -P /tmp/soDownloads  https://s3-eu-west-1.amazonaws.com/myBucket/myFolder/myFile.so
cp /tmp/soDownloads/myFile.so /home/hadoop/lib/native

這個問題對我來說有點奇怪。 雖然我可以直接從終端下載文件(只需鍵入wget命令),但是當我嘗試執行包含相同命令行的shell腳本時,會彈出一個錯誤(腳本使用> sh myScript.sh運行 )。

--2014-06-26 07:33:57--  https://s3-eu-west-1.amazonaws.com/myBucket/myFolder/myFile.so%0D
Resolving s3-eu-west-1.amazonaws.com (s3-eu-west-1.amazonaws.com)... XX.XXX.XX.XX
Connecting to s3-eu-west-1.amazonaws.com (s3-eu-west-1.amazonaws.com)|XX.XXX.XX.XX|:443... connected.
WARNING: cannot verify s3-eu-west-1.amazonaws.com's certificate, issued by     ‘/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’:
Unable to locally verify the issuer's authority.
HTTP request sent, awaiting response... 403 Forbidden
2014-06-26 07:33:57 ERROR 403: Forbidden.

現在,我知道這只是我的初衷,但我無法檢測到任何拼寫錯誤或任何類型的錯誤。 您能為我提供的解決此問題的幫助將不勝感激。

需要注意的是,我想注意到我正在與Amazon Elastic MapReduce框架提供的EC2實例中運行腳本,如果它與問題有關。

我懷疑您用來編寫該腳本的編輯器給您留下了一些“禮物”。

命令行不一樣。 仔細觀察:

--2014-06-26 07:33:57-- ... myFolder/myFile.so%0D
                                              ^^^ what's this about?

這是ASCII CR的urlencoding,十進制13十六進制0x0D 您在腳本中有一個嵌入式回車符,該字符不應該在那里,並且wget將其視為URL中的最后一個字符,並將其發送到S3。

使用less實用程序查看文件,或使用諸如vi的編輯器,此雜散字符可能顯示為^M ...,或者,如果它們遍布文件,則使用vi打開它時,應該在屏幕底部:

"foo" [dos] 1L, 5C    
      ^^^^^

如果看到了,那就在Vi ...

:set ff=unix[enter] 
:x[enter]

...將轉換行尾,並以實際可用的格式保存文件(如果這確實是您遇到的問題)。

如果要在Windows上編輯文件,則需要使用能夠理解如何使用換行符而不是回車符保存文件的編輯器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM