Browse docs

Gallery

Reference for Gallery in sky_jobs_base.

All server exports

All gallery exports use the media provider selected in sky_jobs_base/config/webhooks.lua. See Media Providers for FiveManage, Qbox CDN, and custom adapter setup.

takeServerImage(sourceId, metadata?, timeoutMs?, uploadConfig?)

  • Purpose: Requests a client capture from a player and uploads it through the configured provider.
  • Arguments:
    • sourceId (number) — server ID of the player whose client performs the capture.
    • metadata (table?) — optional capture metadata forwarded to the client.
    • timeoutMs (number?) — optional capture timeout in milliseconds.
    • uploadConfig (table?) — optional trusted server-side media options, including provider.
  • Returns:
    • boolean — true on success, false on failure.
    • table | string — on success: { data = { url, id, image_id } }. On failure: error message.
local ok, result = exports["sky_jobs_base"]:takeServerImage(source, {
    type = "bodycam",
    timestamp = os.time()
})

if ok then
    print("Uploaded:", result.data.url)
end

getMediaUploadUrl()

  • Purpose: Requests a temporary browser-safe upload URL from the selected provider.
  • Returns: { success = true, data = { presignedUrl, expiresIn?, provider, timeoutMs } } or { success = false, error }.
local result = exports["sky_jobs_base"]:getMediaUploadUrl()

if result.success then
    print("Provider:", result.data.provider)
end

uploadMediaDataUrl(dataUrl, options?)

  • Purpose: Uploads a base64 data URL from a trusted server resource.
  • Arguments:
    • dataUrl (string) — complete base64 data URL.
    • options (table?) — optional provider override and provider-specific fields such as filename or path.
  • Returns: { success = true, data = { url, id, image_id, provider } } or { success = false, error }.
local result = exports["sky_jobs_base"]:uploadMediaDataUrl(dataUrl, {
    filename = "evidence.png",
    path = "cases/42"
})

deleteMediaFile(fileId, options?)

  • Purpose: Deletes a remote media object using its provider ID or storage key.
  • Returns: { success = true } or { success = false, error }.
local result = exports["sky_jobs_base"]:deleteMediaFile("provider-file-id")

registerMediaProvider(name, adapter)

  • Purpose: Registers or replaces a custom server-side media provider adapter.
  • Returns: { success = true } or { success = false, error }.

The adapter must implement requestUploadUrl, uploadDataUrl, and deleteFile. See the complete custom provider contract.