Skip to main content
The Tencent resource is a thin wrapper over the S3 resource. It maps a TencentConfig to an S3Config and reuses the exact same backend, commands, and behavior as S3, it just derives the right COS endpoint from region. Uses aioboto3 against Tencent COS’s S3-compatible API. The endpoint is computed from region as cos.<region>.myqcloud.com (e.g. cos.ap-guangzhou.myqcloud.com). Pass endpoint_url to override.
Tencent COS bucket names include the APPID suffix, e.g. my-bucket-1250000000. Use the full name (with the suffix) for bucket.

Config

import os

from mirage import MountMode, Workspace
from mirage.resource.tencent import TencentConfig, TencentResource

config = TencentConfig(
    bucket=os.environ["COS_BUCKET"],          # e.g. my-bucket-1250000000
    region=os.environ.get("COS_REGION", "ap-guangzhou"),
    access_key_id=os.environ["COS_SECRET_ID"],
    secret_access_key=os.environ["COS_SECRET_KEY"],
    # Optional:
    # endpoint_url="https://cos.ap-guangzhou.myqcloud.com",
    # timeout=30,
    # proxy="http://proxy:8080",
)
resource = TencentResource(config)
ws = Workspace({"/data": resource}, mode=MountMode.READ)
Both READ and WRITE modes are supported.

Example

import asyncio
import os

from dotenv import load_dotenv

from mirage import MountMode, Workspace
from mirage.resource.tencent import TencentConfig, TencentResource

load_dotenv(".env.development")

config = TencentConfig(
    bucket=os.environ["COS_BUCKET"],
    region=os.environ.get("COS_REGION", "ap-guangzhou"),
    access_key_id=os.environ["COS_SECRET_ID"],
    secret_access_key=os.environ["COS_SECRET_KEY"],
)
resource = TencentResource(config)


async def main() -> None:
    ws = Workspace({"/data/": resource}, mode=MountMode.READ)

    r = await ws.execute("ls /data/")
    print(await r.stdout_str())

    r = await ws.execute("find /data/ -name '*.json' | head -n 5")
    print(await r.stdout_str())


if __name__ == "__main__":
    asyncio.run(main())

Notes

  • Tencent COS reports ResourceName.S3 and routes through the same core/s3 implementation, so the full S3 shell-command set applies. See the S3 resource for the complete command reference, range reads, streaming, and the index cache fast path.
  • For credential setup, see Tencent COS Setup.