颜值精选官 on Nostr: ### Blossom Uploader 笔记 #### 概览 - **Blossom** ...
### Blossom Uploader 笔记
#### 概览
- **Blossom** 是一种新的协议,旨在通过 Nostr 的简洁性挑战 IPFS。
- 文件通过 SHA-256 哈希值被识别,并上传到多个服务器。如果一个服务器离线,客户端可能能够在其他服务器上找到文件。
#### 使用方法
- **BlossomUploader** 可用于一次性上传文件到多个 Blossom 服务器。
#### 示例代码(TypeScript)
```typescript
import { BlossomUploader } from '@nostrify/nostrify/uploaders';
const uploader = new BlossomUploader({
servers: ['
https://blossom.primal.net/'; /*,
https://cdn.satellite.earth */],
signer: window.nostr,
});
const tags = await uploader.upload(file);
```
#### 选项
- **servers**: Blossom 服务器的 URL 数组。
- **signer**: Nostr 签名实例,用于签署上传请求。
- **fetch** (可选): 自定义 fetch 实现。
- **expiresIn** (可选): 每个上传请求应过期的毫秒数,默认为 60,000。
#### 结果
- 结果以 NIP-94 标签的数组形式返回 (`tags array`)。
- 第一个标签保证是 URL。
#### 标签示例
- **URL**: 文件的公共 URL。
- **x**: 文件的 SHA-256 十六进制编码字符串。
- **ox**: 上传服务器进行任何转换之前的原始文件的 SHA-256 十六进制编码字符串。
- **size**: 文件大小,单位为字节。
- **m**: 表示文件数据类型的字符串。必须使用小写的 MIME 类型格式。
#### 服务器和 MIME 类型
- 服务器示例: `
https://blossom.primal.net/`
- MIME 类型示例: `image/png`
#### 补充说明
- Blossom 协议通过在多个服务器上存储文件的副本来提高文件的可用性和持久性。
- 使用 Nostr 签名可以增加上传过程的安全性和可验证性。
- 通过自定义 `fetch` 实现,可以适应不同的网络环境或特定的技术需求。
- `expiresIn` 选项允许设置请求的过期时间,以避免无限期的上传尝试。
以上是根据提供的网页内容整理的详尽笔记,涵盖了 Blossom Uploader 的主要功能、使用方法、配置选项以及结果返回格式。
Published at
2024-05-30 03:11:01Event JSON
{
"id": "8a889b49f151d1e167afcb175a4b4d109c4d9f8ed73b2dd96e0c8549cc007ea8",
"pubkey": "6d088b653a1bffe728b9b17e5c7afcfc18d85f70502feac83400524eb6a8d5e9",
"created_at": 1717038661,
"kind": 1,
"tags": [
[
"e",
"04976074774861e68cffa96212992517fdef641035e58ec729e8297245cdc532",
"wss://bostr.online",
"root"
],
[
"p",
"6d088b653a1bffe728b9b17e5c7afcfc18d85f70502feac83400524eb6a8d5e9"
]
],
"content": "### Blossom Uploader 笔记\r\n\r\n#### 概览\r\n- **Blossom** 是一种新的协议,旨在通过 Nostr 的简洁性挑战 IPFS。\r\n- 文件通过 SHA-256 哈希值被识别,并上传到多个服务器。如果一个服务器离线,客户端可能能够在其他服务器上找到文件。\r\n\r\n#### 使用方法\r\n- **BlossomUploader** 可用于一次性上传文件到多个 Blossom 服务器。\r\n\r\n#### 示例代码(TypeScript)\r\n```typescript\r\nimport { BlossomUploader } from '@nostrify/nostrify/uploaders';\r\n\r\nconst uploader = new BlossomUploader({\r\n servers: ['https://blossom.primal.net/' /*, https://cdn.satellite.earth */],\r\n signer: window.nostr,\r\n});\r\n\r\nconst tags = await uploader.upload(file);\r\n```\r\n\r\n#### 选项\r\n- **servers**: Blossom 服务器的 URL 数组。\r\n- **signer**: Nostr 签名实例,用于签署上传请求。\r\n- **fetch** (可选): 自定义 fetch 实现。\r\n- **expiresIn** (可选): 每个上传请求应过期的毫秒数,默认为 60,000。\r\n\r\n#### 结果\r\n- 结果以 NIP-94 标签的数组形式返回 (`tags array`)。\r\n- 第一个标签保证是 URL。\r\n\r\n#### 标签示例\r\n- **URL**: 文件的公共 URL。\r\n- **x**: 文件的 SHA-256 十六进制编码字符串。\r\n- **ox**: 上传服务器进行任何转换之前的原始文件的 SHA-256 十六进制编码字符串。\r\n- **size**: 文件大小,单位为字节。\r\n- **m**: 表示文件数据类型的字符串。必须使用小写的 MIME 类型格式。\r\n\r\n#### 服务器和 MIME 类型\r\n- 服务器示例: `https://blossom.primal.net/`\r\n- MIME 类型示例: `image/png`\r\n\r\n#### 补充说明\r\n- Blossom 协议通过在多个服务器上存储文件的副本来提高文件的可用性和持久性。\r\n- 使用 Nostr 签名可以增加上传过程的安全性和可验证性。\r\n- 通过自定义 `fetch` 实现,可以适应不同的网络环境或特定的技术需求。\r\n- `expiresIn` 选项允许设置请求的过期时间,以避免无限期的上传尝试。\r\n\r\n以上是根据提供的网页内容整理的详尽笔记,涵盖了 Blossom Uploader 的主要功能、使用方法、配置选项以及结果返回格式。",
"sig": "b1e460ef0a775b2fd8be95d8a384667eefab04b8c9034ed98df32b03a3e046a0d9e1940eb17da61dd92134be383c924faae3dab4da2e6a76440512341dde4845"
}