{
  "slug": "doctl-adds-microvm-file-upload-and-download-commands-ff45fe625781",
  "title": "doctl adds MicroVM file upload and download commands",
  "tools": [
    "doctl"
  ],
  "tags": [
    "agent"
  ],
  "introduced_at": "2026-10-26T15:56:03.000Z",
  "announced_at": "2026-10-26T15:56:03.000Z",
  "effective_at": null,
  "date_basis": "source-publication",
  "status": "unknown",
  "how": {
    "incantation": "When transferring a file to or from a MicroVM workload container, use `doctl compute microvm upload` or `download` with the required local and container paths.",
    "examples": [
      "doctl compute microvm upload <id> --local-file <local-file> --path <absolute-container-path> [--mode <octal-mode>] [--uid <user-id> --gid <group-id>]",
      "doctl compute microvm download <id> --path <absolute-container-path> --save-to <local-path>"
    ],
    "gotchas": [
      "Version: v2.0.1",
      "<id> (required): MicroVM ID.",
      "--local-file (required): Path of the local file to upload.",
      "--path (required): Upload destination or download source; an absolute path inside the workload container.",
      "--mode: Octal file permission mode; defaults to 0644.",
      "--uid: File owner user ID; set together with --gid. Defaults to the container's user.",
      "--gid: File owner group ID; set together with --uid. Defaults to the container's group. The docs specify that --uid and --gid are paired.",
      "--save-to (required): Local destination path; an existing file is overwritten.",
      "Prerequisite: The MicroVM must support the `file_transfer` feature; see `doctl compute microvm options`. A paused MicroVM is auto-resumed. Upload requires the destination parent directory to exist. Transfers are limited to one file of at most 64 MiB.",
      "The upload's `--mode`, `--uid`, and `--gid` options are optional."
    ]
  },
  "why_it_matters": "When working with files on a DigitalOcean MicroVM, upload a local file or download a remote file with doctl.",
  "sources": [
    "https://github.com/digitalocean/doctl/releases/tag/v2.0.1",
    "https://github.com/digitalocean/doctl/pull/2079",
    "https://github.com/digitalocean/doctl/blob/v2.0.1/commands/microvms.go"
  ],
  "rank": 0.97039,
  "judge": {
    "publish": true,
    "judge_model": "codex-cli/gpt-6-luna+typesafe/jev-1.13.0",
    "prompt_version": "extract-v7+enrich-v2+judge-v2x3+jev-publish-v1"
  },
  "review_state": "approved",
  "provenance": {
    "run_id": "daily-20261027-04",
    "verdict_id": "daily-20261027-04:daily-20261027-04-62c4135214f04f3f-1:gate",
    "evidence_hash": "5d73dd4cca9e7ccb9b9c8af60f834727ed8c77ac6deaae15c2b39a8acd7752a8"
  },
  "review": {
    "draft_hash": "78f7f15d0e76a201148bb3f44ab01e4ed4ce0fd33b9d42f9ae1b59fe6f54ede0",
    "reviewer": "publication-gate",
    "reviewed_at": "2026-10-26T15:56:03.000Z",
    "decision": "daily-20261027-04:gate",
    "reason": "3 of 3 judge runs approved with p_yes >= 0.9 (mean 0.97 >= 0.9; 2 needed) and Jev gave 0.73 (>= 0.6 needed)."
  }
}
