Media2URL 云媒体摄取 API

API ID 14137

Media2URL是一个高性能的开发者媒体摄取和永久边缘CDN链接生成REST API,支持图像、视频、音频、PDF和文件

86 ms 平均响应

API 文档

端点

请求
返回完整的OpenAPI规范、操作状态和Media2URL边缘存储支持的媒体摄取端点
Endpoint ID: 34981
GET https://zylalabs.com/api/14137/media2url+cloud+media+ingestion+api/34981/check+api+and+edge+storage+health
输入参数

剩余免费测试请求:3 / 3。


输入参数

此端点不需要任何输入参数。

API 示例响应
JSON
{
    "openapi": "3.1.2",
    "info": {
        "title": "Media2URL Developer Platform REST API",
        "version": "1.0.0",
        "description": "Official REST API for Media2URL external developers and authenticated automation clients. Provides direct Cloudflare R2 presigned file uploads with temporary-to-final object promotion, transactional quota reservations, asset management, version history, duplicate detection, and remote URL imports.",
        "contact": {
            "name": "Media2URL Developer Platform",
            "url": "https://media2url.com/contact",
            "email": "[email protected]"
        },
        "license": {
            "name": "Proprietary",
            "url": "https://media2url.com/terms"
        }
    },
    "servers": [
        {
            "url": "https://api.media2url.com/v1",
            "description": "Production API v1"
        }
    ],
    "security": [
        {
            "BearerAuth": []
        }
    ],
    "paths": {
        "/usage": {
            "get": {
                "operationId": "getUsage",
                "summary": "Retrieve Account & API Usage",
                "description": "Returns authoritative usage metrics for storage, bandwidth, and monthly upload counts.",
                "security": [
                    {
                        "BearerAuth": [
                            "usage:read"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Authoritative usage metrics",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/UsageResponse"
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/uploads/presign": {
            "post": {
                "operationId": "presignUpload",
                "summary": "Request Direct R2 Upload URL",
                "description": "Validates file metadata against account quotas, atomically reserves storage capacity, and generates a short-lived presigned PUT URL targeting a temporary R2 key.",
                "security": [
                    {
                        "BearerAuth": [
                            "uploads:write"
                        ]
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/PresignUploadRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Temporary upload URL generated",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PresignUploadResponse"
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/uploads/finalize": {
            "post": {
                "operationId": "finalizeUpload",
                "summary": "Finalize Upload & Promote Asset",
                "description": "Atomically consumes the upload session, validates temporary R2 object size, content type, magic bytes, and blocked fingerprints, promotes the validated bytes into a non-presigned final key, commits quota, and returns the canonical asset links.",
                "security": [
                    {
                        "BearerAuth": [
                            "uploads:write"
                        ]
                    }
                ],
                "parameters": [
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "maxLength": 128
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/FinalizeUploadRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Asset created and promoted",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/AssetResource"
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "409": {
                        "$ref": "#/components/responses/Conflict"
                    },
                    "410": {
                        "$ref": "#/components/responses/Gone"
                    },
                    "429": {
                        "$ref": "#/components/responses/RateLimited"
                    }
                }
            }
        },
        "/uploads/check-duplicate": {
            "post": {
                "operationId": "checkDuplicate",
                "summary": "Check for Duplicate Asset",
                "description": "Searches within the authenticated account's scope for an existing asset matching the given SHA-256 checksum and optional byte size.",
                "security": [
                    {
                        "BearerAuth": [
                            "assets:read"
                        ]
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/CheckDuplicateRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Duplicate detection result",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/CheckDuplicateResponse"
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    }
                }
            }
        },
        "/assets": {
            "get": {
                "operationId": "listAssets",
                "summary": "List Assets",
                "description": "Returns a cursor-paginated list of assets owned by the authenticated account.",
                "security": [
                    {
                        "BearerAuth": [
                            "assets:read"
                        ]
                    }
                ],
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "schema": {
                            "type": "integer",
                            "default": 20,
                            "maximum": 100
                        }
                    },
                    {
                        "name": "cursor"
                    }
                ]
            }
        }
    },
    "_note": "Response truncated for documentation purposes"
}
检查API和边缘存储的健康状况 — 代码片段

curl --location --request GET 'https://zylalabs.com/api/14137/media2url+cloud+media+ingestion+api/34981/check+api+and+edge+storage+health' --header 'Authorization: Bearer YOUR_API_KEY' 


    

API 访问密钥和身份验证

注册后,每个开发者都会被分配一个个人 API 访问密钥,这是一个唯一的字母和数字组合,用于访问我们的 API 端点。要使用 Media2URL 云媒体摄取 API 进行身份验证,只需在 Authorization 标头中包含您的 bearer token。

标头
标头 描述
授权 必需 应为 Bearer access_key. 订阅后,请查看上方的"您的 API 访问密钥"。

无长期承诺。随时升级、降级或取消。 免费试用包括最多 50 个请求。

起价
$10,000/年


  • 自定义数量
  • 自定义速率限制
  • 专业客户支持
  • 实时 API 监控

概览

Media2URL 是一个高性能的开发者媒体摄取和永久边缘 CDN 链接生成 REST API,支持图像、视频、音频、PDF 和文件

Media2URL 云媒体摄取 API FAQs

每个端点返回JSON数据 例如“检查API和边缘存储健康”端点提供操作状态和API规范 而“列出托管媒体资产”端点返回媒体文件的分页列表 包括它们的ID 文件名 MIME类型 大小和公共URL

关键字段包括“id”(文件标识符)、“filename”(文件名称)、“mimeType”(文件类型)、“sizeBytes”(文件大小,以字节为单位)和“publicUrl”(永久 CDN 链接)。这些字段有助于有效识别和访问媒体资产

参数因端点而异 例如 "列出托管媒体资产" 端点支持像 "游标" 这样用于浏览结果的分页参数 "初始化预签名 R2 媒体上传" 端点可能需要文件元数据如文件类型和大小以生成上传 URL

响应数据以JSON格式构造,通常包含一个"ok"状态字段表示成功,然后是相关的数据字段。例如,"获取媒体资产元数据"接口返回特定文件的元数据,包括其ID、文件名、MIME类型和公共URL

该数据来源于用户上传到Media2URL平台的媒体资产 每个媒体资产都经过处理并存储在Cloudflare R2中 确保可靠的访问和管理 API通过在上传和检索过程中进行自动检查来维护数据的准确性

典型的用例包括为网站管理媒体资产 生成快速内容交付的CDN链接 和将媒体上传集成到应用程序中 开发人员可以自动化媒体处理 确保对各种文件类型的高效访问

用户可以通过将返回的数据集成到他们的应用程序中来展示媒体、管理资产或创建共享链接。例如,“publicUrl”字段可以用于将图像或视频直接嵌入网页或应用程序中

在处理部分或空结果时,请检查分页响应中的"nextCursor"字段。如果它为null,则没有更多结果。实施逻辑以优雅地管理空响应,例如显示一条消息指示没有可用的媒体资产

一般常见问题

Zyla API Hub 就像一个大型 API 商店,您可以在一个地方找到数千个 API。我们还为所有 API 提供专门支持和实时监控。注册后,您可以选择要使用的 API。请记住,每个 API 都需要自己的订阅。但如果您订阅多个 API,您将为所有这些 API 使用相同的密钥,使事情变得更简单。
价格以 USD(美元)、EUR(欧元)、CAD(加元)、AUD(澳元)和 GBP(英镑)列出。我们接受所有主要的借记卡和信用卡。我们的支付系统使用最新的安全技术,由 Stripe 提供支持,Stripe 是世界上最可靠的支付公司之一。如果您在使用卡片付款时遇到任何问题,请通过 [email protected]

此外,如果您已经以这些货币中的任何一种(USD、EUR、CAD、AUD、GBP)拥有有效订阅,该货币将保留用于后续订阅。只要您没有任何有效订阅,您可以随时更改货币。
定价页面上显示的本地货币基于您 IP 地址的国家/地区,仅供参考。实际价格以 USD(美元)为单位。当您付款时,即使您在我们的网站上看到以本地货币显示的等值金额,您的卡片对账单上也会以美元显示费用。这意味着您不能直接使用本地货币付款。
有时,银行可能会因其欺诈保护设置而拒绝收费。我们建议您首先联系您的银行,检查他们是否阻止了我们的收费。此外,您可以访问账单门户并更改关联的卡片以进行付款。如果这些方法不起作用并且您需要进一步帮助,请通过 [email protected]
价格由月度或年度订阅决定,具体取决于所选计划。
API 调用根据成功请求从您的计划中扣除。每个计划都包含您每月可以进行的特定数量的调用。只有成功的调用(由状态 200 响应指示)才会计入您的总数。这确保失败或不完整的请求不会影响您的月度配额。
Zyla API Hub 采用月度订阅系统。您的计费周期将从您购买付费计划的那一天开始,并在下个月的同一日期续订。因此,如果您想避免未来的费用,请提前取消订阅。
要升级您当前的订阅计划,只需转到 API 的定价页面并选择您要升级到的计划。升级将立即生效,让您立即享受新计划的功能。请注意,您之前计划中的任何剩余调用都不会转移到新计划,因此在升级时请注意这一点。您将被收取新计划的全部金额。
要检查您本月剩余多少 API 调用,请参考响应标头中的 "X-Zyla-API-Calls-Monthly-Remaining" 字段。例如,如果您的计划允许每月 1,000 个请求,而您已使用 100 个,则响应标头中的此字段将显示 900 个剩余调用。
要查看您的计划允许的最大 API 请求数,请检查 "X-Zyla-RateLimit-Limit" 响应标头。例如,如果您的计划包括每月 1,000 个请求,此标头将显示 1,000。
"X-Zyla-RateLimit-Reset" 标头显示您的速率限制重置之前的秒数。这告诉您何时您的请求计数将重新开始。例如,如果它显示 3,600,则意味着还有 3,600 秒直到限制重置。
是的,您可以随时通过访问您的账户并在账单页面上选择取消选项来取消您的计划。请注意,升级、降级和取消会立即生效。此外,取消后,您将不再有权访问该服务,即使您的配额中还有剩余调用。
为了让您有机会在没有任何承诺的情况下体验我们的 API,我们提供 7 天免费试用,允许您免费进行最多 50 次 API 调用。此试用只能使用一次,因此我们建议将其应用于您最感兴趣的 API。虽然我们的大多数 API 都提供免费试用,但有些可能不提供。试用在 7 天后或您进行了 50 次请求后结束,以先发生者为准。如果您在试用期间达到 50 次请求限制,您需要"开始您的付费计划"以继续发出请求。您可以在个人资料中的订阅 -> 选择您订阅的 API -> 定价标签下找到"开始您的付费计划"按钮。或者,如果您在第 7 天之前不取消订阅,您的免费试用将结束,您的计划将自动计费,授予您访问计划中指定的所有 API 调用的权限。请记住这一点以避免不必要的费用。
7 天后,您将被收取试用期间订阅的计划的全额费用。因此,在试用期结束前取消很重要。因忘记及时取消而提出的退款请求不被接受。
当您订阅 API 免费试用时,您可以进行最多 50 次 API 调用。如果您希望超出此限制进行额外的 API 调用,API 将提示您执行"开始您的付费计划"。您可以在个人资料中的订阅 -> 选择您订阅的 API -> 定价标签下找到"开始您的付费计划"按钮。
付款订单在每月 20 日至 30 日之间处理。如果您在 20 日之前提交请求,您的付款将在此时间范围内处理。
您可以通过我们的聊天渠道联系我们以获得即时帮助。我们始终在线,时间为上午 8 点至下午 5 点(EST)。如果您在该时间之后联系我们,我们将尽快回复您。此外,您可以通过 [email protected]