Skip to content

CSTCloud 数据胶囊 S3 兼容存储验证返回 401,希望确认 SigV4 兼容性并支持自定义 User-Agent #216

@bi1kbu

Description

@bi1kbu

问题描述

我在使用 S3 对象存储插件接入中国科技云数据胶囊(CSTCloud Data Capsule)的 S3 兼容接口时,存储策略验证失败,返回 401 Unauthorized。

该服务的 S3 客户端访问页面显示:

  • Endpoint: s3.cstcloud.cn
  • Bucket: 已确认正确
  • 签名版本: v4
  • 客户端需要使用 Path Style
  • AccessKey 会绑定到具体应用类型,例如 S3Drive、S3Browser、Rclone、Obsidian、Cherry Studio

当前环境

  • Halo: 2.23.2
  • S3 插件: 1.14.0
  • 对象存储服务: 中国科技云数据胶囊 / CSTCloud Data Capsule
  • Endpoint: s3.cstcloud.cn
  • Endpoint 访问风格: Path Style
  • Region: 试过留空,也试过 us-east-1
  • 权限: 完全控制
  • AccessKey 类型: 试过 S3Browser 和 Rclone

实际结果

使用 Path Style ,请求可以到达对象存储服务,但验证接口返回:

The object storage service returned an error status code 401.
Please check the storage policy configuration and make sure your account and service are working properly.

更换为 Rclone 类型的 AccessKey 后仍然返回 401。

期望结果

希望确认当前插件在该场景下是否始终使用 S3 Signature V4。

另外,CSTCloud 数据胶囊的 AccessKey 会绑定应用类型,可能会校验客户端 User-Agent。当前插件的策略配置表单中没有自定义 User-Agent 字段,因此无法配置类似:

rclone/v1.67.0
rclone/v1.68.0

希望插件可以支持一个可选配置项,例如:

customUserAgent

当字段为空时保持现有行为;当字段有值时,在 S3 Client 请求中使用自定义 User-Agent,以兼容这类按客户端应用类型限制访问的 S3 兼容服务。

相关信息

我看到 issue #213 中也有人提到 S3 Signature V4 相关兼容问题:

不过我当前遇到的是 CSTCloud 返回 401,而不是 RustFS 返回 400,所以不确定是否是同一类问题。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions