Skip to content

hackclub/cdn

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

70 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

flag

cdn.hackclub.com

Deep under the waves and storms there lies a vault...

Banner

Banner illustration by @maxwofford.

Slack Channel

📡 API Usage

  • All API endpoints require authentication via Authorization: Bearer api-token header
  • Use the API_TOKEN from your environment configuration
  • Failure to include a valid token will result in 401 Unauthorized responses

V3 API (Latest)

Version 3

Endpoint: POST https://cdn.hackclub.com/api/v3/new

Headers:

Authorization: Bearer api-token
Content-Type: application/json

Request Example:

curl --location 'https://cdn.hackclub.com/api/v3/new' \
--header 'Authorization: Bearer beans' \
--header 'Content-Type: application/json' \
--data '[
  "https://assets.hackclub.com/flag-standalone.svg",
  "https://assets.hackclub.com/flag-orpheus-left.png"
]'

Response:

{
  "files": [
    {
      "deployedUrl": "https://hc-cdn.hel1.your-objectstorage.com/s/v3/64a9472006c4472d7ac75f2d4d9455025d9838d6_flag-standalone.svg",
      "file": "0_64a9472006c4472d7ac75f2d4d9455025d9838d6_flag-standalone.svg",
      "sha": "64a9472006c4472d7ac75f2d4d9455025d9838d6",
      "size": 4365
    },
    {
      "deployedUrl": "https://hc-cdn.hel1.your-objectstorage.com/s/v3/d926bfd9811ebfe9172187793a171a5cbcc61992_flag-orpheus-left.png",
      "file": "1_d926bfd9811ebfe9172187793a171a5cbcc61992_flag-orpheus-left.png",
      "sha": "d926bfd9811ebfe9172187793a171a5cbcc61992",
      "size": 8126
    }
  ],
  "cdnBase": "https://hc-cdn.hel1.your-objectstorage.com"
}
V2 API Version 2

Endpoint: POST https://cdn.hackclub.com/api/v2/new

Headers:

Authorization: Bearer api-token
Content-Type: application/json

Request Example:

[
  "https://assets.hackclub.com/flag-standalone.svg",
  "https://assets.hackclub.com/flag-orpheus-left.png"
]

Response:

{
  "flag-standalone.svg": "https://cdn.example.dev/s/v2/flag-standalone.svg",
  "flag-orpheus-left.png": "https://cdn.example.dev/s/v2/flag-orpheus-left.png"
}
V1 API Version 1

Endpoint: POST https://cdn.hackclub.com/api/v1/new

Headers:

Authorization: Bearer api-token
Content-Type: application/json

Request Example:

[
  "https://assets.hackclub.com/flag-standalone.svg",
  "https://assets.hackclub.com/flag-orpheus-left.png"
]

Response:

[
  "https://cdn.example.dev/s/v1/0_flag-standalone.svg",
  "https://cdn.example.dev/s/v1/1_flag-orpheus-left.png"
]

Technical Details

  • Storage Structure: /s/v3/{HASH}_{filename}
  • File Naming: /s/{slackUserId}/{unix}_{sanitizedFilename}

Made with 💜 for Hack Club