尝试下载GSuite的导出。收到“OSError:目录名称无效。”当它到达名为“

问题描述 投票:0回答:2

我正在尝试在关闭 Google Suite 帐户之前下载所有用户的数据。我已经创建了导出。我安装了 Google Cloud SDK Shell 并对其进行了身份验证。我运行

gsutil cp -r gs://takeout-export-xxxxxxxxxxxx C:\GExport
并且它下载了“R”之前的所有文件夹,但是当它到达第一个“资源:-xxx”文件夹时,它会失败并显示

OSError:目录名称无效。

这些文件夹似乎没有太有用的数据,所以我什至尝试删除它们(从网站界面)但它们总是无法删除。

什么给予?我怎样才能下载所有用户文件夹而不需要手动一次下载一个?

编辑:

我尝试在网站 GUI 中选择每个文件夹(减去有问题的文件夹)并选择下载,这样它就给了我下载这些文件夹的命令。我尝试将这些命令复制/粘贴到 GCloud SDK Shell 中,但似乎不起作用。当它到达第二行(要下载的第一个文件夹)时它会失败。显然不确定尝试下载许多文件夹的正确语法(谷歌建议的命令不正确)。

export google-workspace gsutil
2个回答
1
投票

最终放弃了“正确”的方式,并将命令修改为多行,一次抓取每个文件夹,将命令复制/粘贴到 GCloud SDK 中并让他们一次下载一个。 Notepad++ 太有用了


0
投票

我遇到了同样的问题,这里的答案帮助我节省了很多时间。 我最终编写了一个 powershell 脚本来执行此操作。我将其包含在下面以帮助任何遇到此问题的人:

# Define the base URL for the Google Cloud Storage folders
$baseURL = "gs://takeout-export-xxx/xxx/Resource: "

# Define the IDs of the folders to download
$folderIDs = @(
    "-xxx",
    ...
)

# For each folder ID, create a local folder and download the contents of the GCS folder
foreach ($folderID in $folderIDs) {
    # Create a local folder name by replacing the ":" character with an underscore
    $localFolderName = $folderID -replace ":", "_"
    $localFolderName = "Resource " + $localFolderName

    # Create the local folder if it doesn't exist
    if (!(Test-Path -Path $localFolderName)) {
        New-Item -ItemType Directory -Path $localFolderName
    }

    # Change to the local folder
    Set-Location -Path $localFolderName

    # Construct the full URL of the GCS folder
    $fullURL = $baseURL + $folderID

    # List all the files in the GCS folder
    $files = gsutil ls "`"$fullURL`""

    # For each file, download it and replace any illegal characters in the filename
    foreach ($file in $files) {
        # Get the filename and replace any illegal characters
        $fileName = Split-Path -Leaf $file
        $safeFileName = $fileName -replace ":", "_"

        # Download the file
        gsutil cp "`"$file`"" $safeFileName

        # Pause for 1 seconds to check for errors
        Start-Sleep -Seconds 1
    }

    # Change back to the parent folder
    Set-Location -Path ..
}
© www.soinside.com 2019 - 2024. All rights reserved.