上传aws cli文件时,S3 Key中不需要的额外字符

时间:2018-05-14 22:04:39

标签: amazon-web-services amazon-s3

我有以下shell脚本,用于将文件上传到我的s3存储桶。

#!/bin/sh

export AWS_ACCESS_KEY_ID="$KEY_ID"
export AWS_SECRET_ACCESS_KEY="$KEY_SECRET"

echo "[INFO] AWS_ACCESS_KEY_ID - $AWS_ACCESS_KEY_ID"
echo "[INFO] AWS_SECRET_ACCESS_KEY - $AWS_SECRET_ACCESS_KEY"

S3_URL="s3://mybucket/uploads"

aws s3 cp ../data.pdf       $S3_URL/data.pdf
aws s3 cp ../data.html.zip  $S3_URL/data.html.zip

echo "[INFO] Uploaded Successfully"
echo ""

当我运行此脚本时,文件会上传到S3存储桶。但是,我在键名的末尾看到了一些额外的字符。

以下是我的S3浏览器界面的截图

enter image description here

  

有人可以告诉我为什么这些角色会自动出现,当我不想让它们来的时候。

     

我怎样才能摆脱这些?

     

此外,这也为我的下载服务带来了问题,因为它无法读取这些文件,并且找不到Key not error。

1 个答案:

答案 0 :(得分:1)

您的脚本中似乎插入了一些不可见的UTF-8代码。

请参阅:Wordpress putting %E2%80%8E at the end of my url, howcome?

另请参阅网络搜索:https://www.google.com.au/search?q=%25e2%2580%258b

确保您使用的是真正的文本编辑器(不是像MS Word那样)。应该有像 Zap Gremlins 这样的命令可以删除坏字符。

或者,只需删除并重新输入(不要复制/粘贴)其中包含import requests, lxml url = 'http://MyWebPage:8008' s = requests.Session() payload = { "j_username": "user", "j_password": "passw00rd", "domain": "MYDOMAIN.NET" } s.post(url, data=payload) 的行。