为什么查看不到LocalStack本地S3存储桶内容,如何确认文件上传路径正确
S3 对象存储的目录是逻辑前缀,默认ls命令仅展示当前层级的内容,根目录查询只会返回一级前缀,你可以通过以下方式验证文件是否上传成功:
- 递归查询全桶所有对象
执行命令:
awslocal s3 ls s3://kiosks-images --recursive
该命令会输出所有层级的对象信息,你可以直接匹配上传的文件名或目标路径判断是否存在。
- 直接查询目标路径
指定你上传的完整前缀查询该层级下的内容:
awslocal s3 ls s3://kiosks-images/dev/us/2020_08_11/eea9efc9-5970-426b-b867-9f57d6d9548f/55208151-6438-4bfc-b4be-43ed57798dc2/
如果文件上传成功,会直接返回对应文件的大小、上传时间和文件名。
- 校验对象元数据
使用s3api的head-object接口直接查询对象元信息:
awslocal s3api head-object --bucket kiosks-images --key dev/us/2020_08_11/eea9efc9-5970-426b-b867-9f57d6d9548f/55208151-6438-4bfc-b4be-43ed57798dc2/TopCroppedSpotlightLowExOnlyPGV.jpg
返回结果中会包含文件ETag、大小、最后修改时间等信息,可用于确认文件属性是否符合预期。
- 对比文件完整性
如需确认内容完全一致,可将远端文件下载到本地进行哈希校验:
# 下载远端文件 awslocal s3 cp s3://kiosks-images/dev/us/2020_08_11/eea9efc9-5970-426b-b867-9f57d6d9548f/55208151-6438-4bfc-b4be-43ed57798dc2/TopCroppedSpotlightLowExOnlyPGV.jpg ./verify.jpg # 本地计算哈希值对比即可,示例为md5校验 md5 TopCroppedSpotlightLowExOnlyPGV.jpg md5 verify.jpg
额外提醒:你之前执行ls命令用的是aws而非awslocal,如果本地aws cli没有默认指向LocalStack端点,可能会查询到真实AWS环境的资源,建议所有操作统一使用awslocal命令避免混淆。
内容的提问来源于stack exchange,提问作者reza
相关产品推荐
相关产品推荐

