Boto3 AWS Codecommit 删除文件夹

Boto3 AWS Codecommit Delete Folder

问题是您可以创建和更新多个文件,例如 .create_commit。但是,您不能执行相反的操作,您可以使用文档中提到的功能 1 by 1 删除文件。

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

参考 - boto3 docs - delete file

问题: 如何使用 boto3aws codecommit?

删除文件夹

只有以下4种方法可用:

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

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

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

基本概述。

  1. 使用.get_folder()获取文件夹中的文件名请注意,他提供了更多信息*
  2. 清理 .get_folder - 清理输出不仅仅是文件路径,我们只需要文件路径
  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']],
    )