我正在尝试通过Boto set_contents_from_filename()上传本地文件。我按照教程说明here但没有运气。我也尝试过在StackOverflow here和here中提到的变体,但我得到了同样的错误。
任何调用set_contents_from_filename的尝试都会给出“FileNotFoundError:[Errno 2]没有这样的文件或目录”
我的python脚本与我要上传的文件在同一个子目录中:AWS_Upload.txt。我的工作目录也设置正确。我可以成功调用set_contents_from_ string (),所以我知道其他所有工作(我的钥匙,我的水桶等)
此外,下面的FILE_PATH常量是通过尝试os.path.join来创建正确的完整路径而遗留下来的,但是我收到了同样的错误。
最后,该文件确实存在。我将c:\ Apps \ Docs \ Python \ MyPy \ AWS_Upload.txt复制并粘贴到Windows文件资源管理器中,该文件显示在记事本中。
任何帮助将不胜感激。
from boto.s3.key import Key
import boto.sqs
ACCESS_KEY='mykey'
SECRET_ACCES_KEY='mysecret'
BUCKET = 'pybucket234'
FILE_PATH = 'c:\\Apps\\Docs\\Python\\MyPy\\'
FILE_UPLOAD = 'AWS_Upload.txt'
conn = boto.connect_s3(aws_access_key_id=ACCESS_KEY,
aws_secret_access_key=SECRET_ACCES_KEY)
# Save some data
bucket = conn.get_bucket(BUCKET)
k = Key(bucket)
k.key = 'myfilekey'
k.set_contents_from_filename('AWS_Upload.txt')
# FileNotFoundError: [Errno 2] No such file or directory: 'AWS_Upload.txt'
# Tried this as well but get the same error
k.set_contents_from_filename('c:\Apps\Docs\Python\MyPy\AWS_Upload.txt')
# FileNotFoundError: [Errno 2] No such file or directory: 'c:\\Apps\\Docs\\Python\\MyPy\\AWS_Upload.txt'
答案 0 :(得分:0)
我略微更改了导入并改为使用boto.connect_s3()。上面的代码今天在不同的桶中为我工作了好几次。上面的'FileNotFoundErrors'不再出现。