--- title: Alibaba OSS icon: /images/aliyun-logo.svg description: Mount an Alibaba Cloud OSS bucket via its S3-compatible API as a virtual filesystem. --- The Aliyun resource is a thin wrapper over the [S3 resource](/python/resource/s3). It maps an `AliyunConfig` to an `S3Config` and reuses the exact same backend, commands, and behavior as S3, it just derives the right OSS endpoint from `region`. Uses aioboto3 against Alibaba OSS's S3-compatible API. The endpoint is computed from `region` as `s3.oss-.aliyuncs.com` (e.g. `s3.oss-cn-hangzhou.aliyuncs.com`). Note the `s3.` prefix: this is the S3-compatible host, distinct from the native `oss-.aliyuncs.com`. Pass `endpoint_url` to override. ## Config ```python import os from mirage import MountMode, Workspace from mirage.resource.aliyun import AliyunConfig, AliyunResource config = AliyunConfig( bucket=os.environ["OSS_BUCKET"], region=os.environ.get("OSS_REGION", "cn-hangzhou"), access_key_id=os.environ["OSS_ACCESS_KEY_ID"], secret_access_key=os.environ["OSS_ACCESS_KEY_SECRET"], # Optional: # endpoint_url="https://s3.oss-cn-hangzhou.aliyuncs.com", # timeout=30, # proxy="http://proxy:8080", ) resource = AliyunResource(config) ws = Workspace({"/data": resource}, mode=MountMode.READ) ``` Both `READ` and `WRITE` modes are supported. ## Example ```python import asyncio import os from dotenv import load_dotenv from mirage import MountMode, Workspace from mirage.resource.aliyun import AliyunConfig, AliyunResource load_dotenv(".env.development") config = AliyunConfig( bucket=os.environ["OSS_BUCKET"], region=os.environ.get("OSS_REGION", "cn-hangzhou"), access_key_id=os.environ["OSS_ACCESS_KEY_ID"], secret_access_key=os.environ["OSS_ACCESS_KEY_SECRET"], ) resource = AliyunResource(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("tree /data/") print(await r.stdout_str()) if __name__ == "__main__": asyncio.run(main()) ``` ## Notes - Aliyun reports `ResourceName.S3` and routes through the same `core/s3` implementation, so the full S3 shell-command set applies. See the [S3 resource](/python/resource/s3) for the complete command reference, range reads, streaming, and the index cache fast path. - For credential setup, see [Alibaba OSS Setup](/home/setup/aliyun).