繁体   English   中英

Boto3 AWS Codecommit 删除文件夹

[英]Boto3 AWS Codecommit Delete Folder

问题是您可以创建和更新多个文件,例如.create_commit 但是,您不能反过来,您可以使用文档中提到的 function逐个删除文件。

对于客户端,我使用boto3boto3.client('codecommit')

参考 - boto3 文档 - 删除文件

问题:如何使用boto3aws codecommit删除文件夹?

只有以下4种方法可用:

  • delete_branch()
  • delete_comment_content()
  • delete_file()
  • delete_repository()

要删除文件夹,请在对该文件夹中的最后一个文件调用 delete_file 时设置keepEmptyFolders keepEmptyFolders=False 我不知道单个 API function 会删除整个文件夹及其所有内容。

注意:默认情况下,调用delete_file时将删除空文件夹。

AWS codecommit 不允许删除目录(文件夹)。 这个实现有效,而不是一次删除整个目录,你找到所有的文件然后删除它们。

基本概述。

  1. 使用.get_folder()获取文件夹内的文件请注意,他提供了更多信息*
  2. 清理.get_folder -清理 output 不仅仅是文件路径,我们只需要文件路径
  3. 提交(删除)

其中REPOSITORY_NAME存储库的名称folderPath要删除的文件夹的名称。

files = codecommit_client.get_folder(repositoryName=REPOSITORY_NAME, folderPath=PATH)

现在我们使用该信息来创建包含已删除文件的提交,我们必须进行一些操作,因为 deleteFiles 参数仅采用文件路径,而我们通过.get_folder获得的信息包含的不仅仅是文件路径。 如果需要,请替换branchName (目前主要)

codecommit_client.create_commit(
            repositoryName=REPOSITORY_NAME,
            branchName='main',
            parentCommitId=files['commitId'],
            commitMessage=f"DELETED Files",
            deleteFiles=[{'filePath':x['absolutePath']} for x in files['files']],
    )

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM