python boto set_contents_from_filename给出FileNotFoundError:[Errno 2]没有这样的文件或目录

时间:2016-11-09 18:30:08

标签: amazon-s3 anaconda boto3

我正在尝试通过Boto set_contents_from_filename()上传本地文件。我按照教程说明here但没有运气。我也尝试过在StackOverflow herehere中提到的变体,但我得到了同样的错误。

任何调用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'

1 个答案:

答案 0 :(得分:0)

我略微更改了导入并改为使用boto.connect_s3()。上面的代码今天在不同的桶中为我工作了好几次。上面的'FileNotFoundErrors'不再出现。