|
Download README.md from xet-team/privatelink-upload-example: direct link, hf CLI and curl.
- Browser
- Download file 2.16 kB
-
https://huggingface.co/xet-team/privatelink-upload-example/resolve/main/README.md
- Command line
-
hf download hf://xet-team/privatelink-upload-example/README.md
-
curl -L -o README.md https://huggingface.co/xet-team/privatelink-upload-example/resolve/main/README.md
2.16 kB
| # Xet uploads over AWS PrivateLink | |
| Terraform for the customer side of a private upload path into Hugging Face. | |
| Upload traffic stays on the AWS network instead of being metered as internet | |
| egress. Your hostname, client and credentials do not change; only DNS inside | |
| your VPC does. | |
| Two paths exist. Use the `hf` CLI one unless you specifically need the S3 | |
| protocol: it chunks and deduplicates client side, so it sends less. | |
| | Path | Hostname | Client | | |
| |---|---|---| | |
| | `cas_service_name` | `cas-server.xethub.hf.co` | `hf` CLI | | |
| | `s3_service_name` | `s3.hf.co` | S3 API | | |
| ## What we exchange | |
| Send us your AWS account ID and the region your upload instances run in. We | |
| send back the endpoint service name for each path you want, and the | |
| Availability Zones we serve as AZ IDs. | |
| ## Apply | |
| ```bash | |
| cp terraform.tfvars.example terraform.tfvars | |
| terraform init | |
| terraform apply | |
| ``` | |
| Pick subnets by AZ ID. `us-east-1a` is a different physical zone in every AWS | |
| account, so matching on the name can put your endpoint in a different zone from | |
| your compute: | |
| ```bash | |
| aws ec2 describe-availability-zones \ | |
| --query 'AvailabilityZones[].[ZoneName,ZoneId]' --output table | |
| ``` | |
| The apply blocks while the endpoint sits in `pendingAcceptance`, because we | |
| accept connections by hand. Send us the `endpoint_ids` output while it waits. | |
| The S3 path serves fewer zones than the `hf` CLI one. If `subnet_ids` includes a | |
| zone it does not cover, set `s3_subnet_ids` to the subset it does. | |
| For a VPC outside `us-east-1`, set `service_region = "us-east-1"`. | |
| ## What it creates | |
| An interface endpoint per path, one security group, and a private hosted zone | |
| per hostname holding a single record. The zones are scoped to your VPC and do | |
| not affect public DNS. Our TLS certificate already covers both hostnames. | |
| `s3.hf.co` is a zone apex, where DNS forbids a CNAME, so that record is an | |
| alias. | |
| ## Verify | |
| Run `./verify-privatelink.sh` from an instance in the VPC. | |
| ## Upload | |
| ```bash | |
| hf upload your-org/your-model ./local-dir | |
| ``` | |
| Auth and commit calls still reach `huggingface.co` over the internet, so egress | |
| there has to stay open. The volume is negligible next to your data. | |