python boto set_contents_from_filename gives FileNotFoundError: [Errno 2] No such file or directory

python boto set_contents_from_filename gives FileNotFoundError: [Errno 2] No such file or directory

我正在尝试通过 Boto set_contents_from_filename() 上传本地文件。我按照教程说明进行操作 here but no luck. I also tried variations mentioned in Whosebug here and here,但我遇到了同样的错误。

任何调用 set_contents_from_filename 的尝试都会得到 "FileNotFoundError: [Errno 2] No such file or directory"

我的 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'

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