当前位置: 首页 > 知识库问答 >
问题:

执行下面的代码时,获取错误(PermissionError:[WinError 5]访问被拒绝)

云和硕
2023-03-14
import boto3

_BUCKET_NAME = 'Bucket_Name'
_PREFIX = 'data/'

ACCESS_KEY='*********************'
SECRET_KEY='**************************'

client = boto3.client('s3', aws_access_key_id=ACCESS_KEY,
                            aws_secret_access_key=SECRET_KEY)

def ListFiles(client):
    """List files in specific S3 URL"""
    response = client.list_objects(Bucket=_BUCKET_NAME, Prefix=_PREFIX)
    for content in response.get('Contents', []):
        yield content.get('Key')

file_list = ListFiles(client)
for file in file_list:
client.download_file('Bucket_Name',file,'C:/Users/UserName/Desktop/folder/')

回溯(最近调用的最后一次):

File“”,第21行,在client.download_file('bucket_name',File,'c://users/user/desktople/folder')中

文件“C:\programdata\anaconda3\lib\site-packages\boto3\s3\inject.py”,第172行,在download_file extra_args=extraargs,callback=callback中)

文件“C:\programdata\anaconda3\lib\site-packages\boto3\s3\transfer.py”,第307行,在download_file future.result()中

文件“C:\programdata\anaconda3\lib\site-packages\s3transfer\futures.py”,第106行,结果返回self._coordinator.result()

文件“C:\programdata\anaconda3\lib\site-packages\s3transfern\futures.py”,第265行,结果引发self._exception

文件“C:\programdata\anaconda3\lib\site-packages\s3transfer\tasks.py”,第126行,调用返回self._execute_main(kwargs)

文件“C:\programdata\anaconda3\lib\site-packages\s3transfern\tasks.py”,第150行,在_execute_main return_value=self._main(**kwargs)中

文件“C:\programdata\anaconda3\lib\site-packages\s3transfern\download.py”,第603行,在_main osutil.rename_file(fileobj.name,final_filename)中

文件“C:\programdata\anaconda3\lib\site-packages\s3transfered\utils.py”,第271行,在rename_file rename_file(current_filename,new_filename)中

文件“C:\programdata\anaconda3\lib\site-packages\s3transfer\compat.py”,第25行,在rename_file os.remove(new_filename)中

PermissionError:[WinError 5]访问被拒绝:“C:/users/user/desktople/folder”

共有1个答案

耿弘阔
2023-03-14

权限错误信息具有误导性。download_file需要一个目标文件名参数,而不是文件夹

client.download_file('Bucket_Name',object_key,'C:\\temp\\file_name.txt')
 类似资料:
  • 我在负载平衡器后面有web服务器,系统成功地将我重定向到OKTA登录页面,当我输入凭据时,并在OKTA服务器执行回调操作时单击登录按钮,使用 我得到一个错误: 403-禁止:拒绝访问。您没有使用提供的凭据查看此目录或页的权限。 我在Startup.cs文件中使用下面的代码,我在Blazor服务器上的应用程序

  • 我正在尝试将DataStudio报表连接到表和来自BigQuery的视图。在BigQuery中,表从位于我的驱动器中的GoogleSheet接收数据,视图正在查询同一个表,但添加了一些新字段。当我尝试将图表连接到其中一个数据源时,出现以下错误: BigQuery错误:访问被拒绝:BigQuery BigQuery:获取驱动器凭据时权限被拒绝。 原因是什么?我该怎么做才能解决这个问题? 我要说的是,

  • 问题内容: 我有一个HTML表单( upload.htm ),其中包含HTML文件上传控件。 上一页中还有一个JavaScript方法,如下所示: 我在一个页面内的页面( uploadpage.htm )中 称其 为: 我尝试从 uploadpage.htm 页面执行以下所示的语句: 我收到一条错误消息,说 Access被拒绝,并且调试器在显示的第一个JavaScript函数处停止。这两个文件都位

  • 问题内容: 在某种程度上,当我尝试通过命令行访问MySQL时,已经设法解决了该错误: 我尝试使用此HowTo重置密码,但没有任何运气。 我已经卸载了mysql completley并重新安装了,但是仍然需要输入密码。我不知道为什么会这样! 有人可以帮我获得默认安装的MySQL吗? 环境 Fedora Core 10,完全根访问权限,安装了Apache和PHP 感谢您的任何帮助!! 编辑 对于所有想

  • 我最近才更新到新版本的forge,没有改变我的设置,当我去构建我的应用程序时,我得到了一个错误,说它找不到文件…

  • 这个问题已经问过好几次了,但没有一个解决办法对我有效。我以管理员身份运行DOS命令窗口,但当运行keytool命令安装证书时,我得到了上面的错误: 我在Windows10上使用JDK 1.8.0_191。为什么拒绝对管理员的访问?