Nostr.build 旗下的 Blossom Server 服务升级
https://blossom.band/ 是Nostr.build旗下的Blossom Server服务页面,为Nostr社交媒体平台用户提供媒体上传服务,依托Nostr.build基础设施,具有独特优势和明确规范。
- 服务背景:由Nostr.build提供支持,借助其经过时间验证、高可用性的基础设施以及全球覆盖的快速CDN网络,每个用户的npub都有专属服务器域名,保证用户数据独立性。
- 上传限制:单次上传文件大小硬限制为100MiB,上传次数和存储时长不受限。支持常见媒体类型上传,包括图片、音频和视频。若有更大上传尺寸等扩展需求,可查看相关付费计划。所有上传需遵循服务条款。
- 兼容性与接口:认证方式为签名的nostr事件,支持Nostr文件元数据标签(NIP - 94)BUD - 08等。提供多种接口,如GET、HEAD、DELETE、PUT等用于文件的获取、查看、删除和上传等操作 ,部分接口需认证,不同接口有不同功能和限制。
- 限制条件:使用PUT /upload或PUT /mirror端点上传时,含GPS元数据的媒体文件会被拒绝。
- 支持的媒体类型:免费用户可上传常见媒体类型,如.jpg、.png等;付费用户根据不同计划,除免费内容外,还能上传.pdf、.svg和.zip等格式文件。
- 关于Nostr.build:2022年12月24日开始为Nostr平台提供免费媒体上传服务,旨在推动Nostr生态发展。团队秉持透明、社区化的媒体审核方式和开源理念,致力于打造安全可靠的平台,欢迎用户反馈和建议 。
使用例子:
假设你是Nostr社交媒体平台的用户,想在该平台分享图片、音频或视频等媒体内容,就可以使用https://blossom.band/提供的服务。下面以分享一张图片和管理已上传媒体为例,介绍其使用方法:
- 上传图片:你需要先对上传操作进行签名认证(通过Signed nostr event方式)。认证完成后,使用
PUT /upload接口来上传图片。例如,你本地有一张名为example.jpg的图片,通过编程方式(如使用Python的requests库)构造请求:
import requests
import json
# 假设你已经获取到签名认证信息
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer your_signed_nostr_event"
}
files = {
'file': open('example.jpg', 'rb')
}
response = requests.put('https://blossom.band/upload', headers=headers, files=files)
if response.status_code == 200:
print("图片上传成功")
else:
print(f"上传失败,状态码: {response.status_code}")
- 获取上传文件信息:图片上传成功后,会得到一个对应的
sha256哈希值。你可以使用GET /<sha256>接口(假设图片对应的sha256哈希值为your_sha256_value)获取文件信息,例如:
import requests
headers = {
"Authorization": "Bearer your_signed_nostr_event"
}
response = requests.get(f'https://blossom.band/your_sha256_value.jpg', headers=headers)
if response.status_code == 200:
print("获取文件信息成功")
else:
print(f"获取失败,状态码: {response.status_code}")
- 删除上传的图片:如果你想删除已上传的图片,可以使用
DELETE /<sha256>接口。同样以your_sha256_value为例:
import requests
headers = {
"Authorization": "Bearer your_signed_nostr_event"
}
response = requests.delete(f'https://blossom.band/your_sha256_value.jpg', headers=headers)
if response.status_code == 200:
print("图片删除成功")
else:
print(f"删除失败,状态码: {response.status_code}")
- 查看用户上传列表:使用
GET /list/<pubkey>接口(pubkey为你的Nostr公钥)可以查看你上传的所有媒体文件列表。例如:
import requests
headers = {
"Authorization": "Bearer your_signed_nostr_event"
}
pubkey = "your_public_key"
response = requests.get(f'https://blossom.band/list/{pubkey}', headers=headers)
if response.status_code == 200:
print("获取上传列表成功")
print(response.json())
else:
print(f"获取失败,状态码: {response.status_code}")
No comments yet.