直接上传文件内容。
请求示例:
curl -X POST \
-H "X-Bmob-Application-Id: Your Application ID" \
-H "X-Bmob-REST-API-Key: Your REST API Key" \
-H "Content-Type: image/jpeg" \
--data-binary "@myPicture.jpg" \
https://api.bmob.cn/2/files/pic.jpg响应示例:
{
"filename": "pic.jpg",
"url": "http://bmob-cdn-1.b0.upaiyun.com/pic.jpg",
"cdn": "upyun"
}上传 Base64 编码的文件内容。
请求示例:
curl -X POST \
-H "X-Bmob-Application-Id: Your Application ID" \
-H "X-Bmob-REST-API-Key: Your REST API Key" \
-H "Content-Type: application/json" \
-d '{
"base64": "base64编码的文件内容",
"filename": "pic.jpg"
}' \
https://api.bmob.cn/2/files/pic.jpg将文件关联到数据对象。
请求示例:
curl -X POST \
-H "X-Bmob-Application-Id: Your Application ID" \
-H "X-Bmob-REST-API-Key: Your REST API Key" \
-H "Content-Type: application/json" \
-d '{
"playerName": "Sean Plott",
"picture": {
"__type": "File",
"url": "http://bmob-cdn-1.b0.upaiyun.com/pic.jpg",
"cdn": "upyun"
}
}' \
https://api.bmob.cn/1/classes/GameScore删除已上传的文件。
请求示例:
curl -X DELETE \
-H "X-Bmob-Application-Id: Your Application ID" \
-H "X-Bmob-REST-API-Key: Your REST API Key" \
https://api.bmob.cn/2/files/upyun/pic.jpg一次删除多个文件。
请求示例:
curl -X POST \
-H "X-Bmob-Application-Id: Your Application ID" \
-H "X-Bmob-REST-API-Key: Your REST API Key" \
-H "Content-Type: application/json" \
-d '{
"urls": [
"http://bmob-cdn-1.b0.upaiyun.com/pic1.jpg",
"http://bmob-cdn-1.b0.upaiyun.com/pic2.jpg"
]
}' \
https://api.bmob.cn/2/files/batch/delete文件访问权限分为:
- 公共读:所有人都可以访问
- 私有:需要授权才能访问
获取私有文件的临时访问链接。
请求示例:
curl -X GET \
-H "X-Bmob-Application-Id: Your Application ID" \
-H "X-Bmob-REST-API-Key: Your REST API Key" \
https://api.bmob.cn/2/files/token/pic.jpg响应示例:
{
"url": "http://bmob-cdn-1.b0.upaiyun.com/pic.jpg?token=xxxx",
"expires": 3600
}通过 URL 参数对图片进行缩放处理。
示例: http://bmob-cdn-1.b0.upaiyun.com/pic.jpg!100x100
支持的缩放参数:
- !{width}x{height} - 按指定尺寸缩放
- !{width}x - 按宽度等比缩放
- !x{height} - 按高度等比缩放
通过 URL 参数对图片进行裁剪。
示例: http://bmob-cdn-1.b0.upaiyun.com/pic.jpg!crop=100x100a10a10
支持的裁剪参数:
- crop={width}x{height}a{x}a{y} - 指定区域裁剪
- crop={width}x{height} - 居中裁剪
为图片添加水印。
示例: http://bmob-cdn-1.b0.upaiyun.com/pic.jpg!watermark=text:Hello
支持的水印参数:
- watermark=text:{text} - 文字水印
- watermark=image:{url} - 图片水印
- watermark=text:{text},color:{color} - 指定文字颜色
- watermark=text:{text},size:{size} - 指定文字大小
- watermark=text:{text},pos:{position} - 指定水印位置
调整图片质量。
示例: http://bmob-cdn-1.b0.upaiyun.com/pic.jpg!q75
支持的质量参数:
- !q{quality} - quality 取值 1-100,数值越大质量越高
转换图片格式。
示例: http://bmob-cdn-1.b0.upaiyun.com/pic.jpg!png
支持的格式:
- !png - 转换为 PNG 格式
- !jpg - 转换为 JPG 格式
- !webp - 转换为 WebP 格式
- !gif - 转换为 GIF 格式
可以设置域名白名单和 referer 防盗链。
请求示例:
curl -X PUT \
-H "X-Bmob-Application-Id: Your Application ID" \
-H "X-Bmob-REST-API-Key: Your REST API Key" \
-H "Content-Type: application/json" \
-d '{
"domains": ["example.com"],
"referer": true,
"allowEmpty": false
}' \
https://api.bmob.cn/2/files/security参数说明:
- domains: 允许访问的域名列表
- referer: 是否开启 referer 防盗链
- allowEmpty: 是否允许空 referer
支持对文件进行加密存储。
请求示例:
curl -X POST \
-H "X-Bmob-Application-Id: Your Application ID" \
-H "X-Bmob-REST-API-Key: Your REST API Key" \
-H "Content-Type: application/json" \
-d '{
"encrypt": true,
"key": "encryption_key",
"algorithm": "AES-256-CBC"
}' \
https://api.bmob.cn/2/files/pic.jpg-
文件大小限制
- 图片文件:10MB
- 视频文件:100MB
- 其他文件:20MB
-
支持的文件类型
- 图片:jpg、jpeg、png、gif、bmp、webp
- 视频:mp4、avi、mov、wmv、flv
- 音频:mp3、wav、aac、ogg
- 文档:pdf、doc、docx、xls、xlsx、ppt、pptx
- 压缩:zip、rar、7z、tar、gz
-
访问控制
- 私有文件访问链接有效期为 1 小时
- 建议使用 CDN 域名访问文件
- 及时更新过期的访问链接
-
性能优化
- 使用适当的图片质量参数
- 根据实际需求选择图片尺寸
- 合理使用图片格式转换
常见错误码:
| 错误码 | 描述 | 解决方案 |
|---|---|---|
| 101 | 文件不存在 | 检查文件路径是否正确 |
| 129 | 无效的文件类型 | 确认上传的文件类型是否支持 |
| 130 | 文件太大 | 压缩文件或分片上传 |
| 131 | 文件数量超出限制 | 减少批量操作的文件数量 |
| 132 | 文件删除失败 | 检查文件权限和状态 |
| 133 | 文件访问被拒绝 | 验证访问权限和 token |
| 134 | 文件上传失败 | 检查网络连接和请求参数 |
| 135 | 文件格式不支持 | 转换为支持的文件格式 |
-
文件命名规范
- 使用时间戳或 UUID 作为文件名
- 避免使用中文和特殊字符
- 保持文件扩展名的正确性
-
目录组织
- 按业务类型创建子目录
- 避免单个目录下文件过多
- 使用日期等规则划分目录
-
安全防护
- 开启防盗链保护
- 使用 HTTPS 传输
- 定期清理临时文件
- 设置合理的文件权限
-
性能优化
- 使用 CDN 加速
- 合理设置缓存策略
- 使用图片处理参数
- 选择合适的文件格式