You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Go向vSphere数据存储上传文件失败:数据存储未找到

解决vcsim中govc上传ISO到数据存储的404问题

咱们先拆解你遇到的问题:能通过govc datastore.info查到LocalDS_0,但上传时返回404,vcsim还报找不到存储的错误,大概率是模拟存储的路径权限问题,或者命令参数的细节没处理对。

快速排查你的当前问题

1. 检查数据存储的实际路径权限

你从datastore.info里看到的URL是/tmp/govcsim-DC0-LocalDS_0-926708808,先确认这个目录的读写权限:

ls -ld /tmp/govcsim-DC0-LocalDS_0-926708808

如果输出显示权限是drwx------且属主是root,那当前用户没有写入权限,直接修改权限就能解决:

sudo chmod 777 /tmp/govcsim-DC0-LocalDS_0-926708808

2. 简化govc命令参数(避免解析问题)

vcsim对参数的解析有时候比较严格,先设置govc的环境变量来简化命令:

export GOVC_DATACENTER=DC0
export GOVC_INSECURE=true  # 对应你原来的-k=true

然后再执行上传命令:

govc datastore.upload -ds LocalDS_0 /home/jorge/Downloads/ipxe.iso ipxe.iso

3. 重建数据存储(如果上面两步都无效)

如果vcsim的默认存储有模拟异常,直接删除重建一个指定权限路径的存储:

# 删除原有存储
govc datastore.rm -dc DC0 LocalDS_0
# 创建新的本地存储,指定一个你有读写权限的目录
govc datastore.create -dc DC0 -type local -path /tmp/my-local-ds-01 LocalDS_0

之后再尝试上传文件。


标准的vcsim+govc创建数据存储并上传文件步骤

如果以后再从头搭建,按这个流程走就不会踩坑:

1. 启动vcsim模拟环境

先启动带数据中心的vcsim实例:

vcsim -dc DC0

启动后会输出vCenter的地址、用户名密码,直接设置成govc的环境变量(省得每次命令加一堆参数):

export GOVC_URL=https://<你的vcsim地址>:8989/sdk
export GOVC_USERNAME=administrator@vsphere.local
export GOVC_PASSWORD=password
export GOVC_INSECURE=true

2. 创建本地数据存储

手动创建一个本地存储,一定要指定当前用户有读写权限的本地目录:

govc datastore.create -dc DC0 -type local -path /tmp/my-datastore MyLocalDS

3. 验证存储可用性

用info命令确认存储状态正常:

govc datastore.info MyLocalDS

重点看URL对应的目录权限、Free空间是否有数值。

4. 上传文件到存储

用简化的命令上传,不指定目标路径的话,默认会传到存储根目录,文件名和本地一致:

# 上传到根目录,文件名和本地相同
govc datastore.upload -ds MyLocalDS /home/jorge/Downloads/ipxe.iso

# 或者指定目标路径和文件名
govc datastore.upload -ds MyLocalDS /home/jorge/Downloads/ipxe.iso /MyLocalDS/custom-name.iso

5. 验证上传结果

用ls命令查看存储里的文件:

govc datastore.ls -ds MyLocalDS

内容的提问来源于stack exchange,提问作者Jorgese

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 04:22:19