簡體   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