
连接到您的云和分布式存储的音乐播放器
2020年海外互联网巨头正不断在加密及产业配套方向下沉,为双方打破用户生态壁垒做出努力;而国内巨头则联合产业侧进行更多场景开发,降低中小企业加入门槛。一个好的应用模型,用户增长速度会非常迅速,会为用户提供更方便快捷的服务。Diffuse作为连接到用户的云存储和分布式存储的播放器,足以体现这一特点。
什么是Diffuse
Diffuse是一个静态Web应用程序,这意味着它只是HTML,CSS和Javascript。不涉及REST API,数据库或任何与后端相关的内容。该应用程序使用哈希值,基于片段的路由系统,因此您不需要任何特殊的服务器规则即可进行路由。

什么使Diffuse与众不同
Diffuse是一种分散的音乐播放器,由两个主要部分组成。一部分是音乐,另一部分是您的数据(例如,播放列表),两者都在您选择的位置。这意味着没有用于Diffuse的中央服务器,所有处理都在设备上进行,所有数据都在您的控制范围内。您可以使用Web版本或本机版本,也可以通过从Github下载预构建的软件包来自己托管它。

1、音乐层
该层连接到存储音乐的服务,没有数据写入这些服务。您可以结合以下所有内容:
Amazon S3
Azure Blob Storage
Azure File Storage
Dropbox
Google Drive
IPFS (supports DNSLink & IPNS)
WebDAV
2、用户层
该层将使用单个服务来存储您的数据。您的数据是您的设置,收藏夹,播放列表等。您可以在以下服务中进行选择:
Blockstack
Dropbox
IndexedDB (Browser)
IPFS (using MFS)
RemoteStorage
Textile
diffuse是如何工作的
diffuse查找给定服务上的所有音乐文件,提取元数据,然后通过先前解释的用户层进行存储。
首先请启动软件,diffuse.sh,而无需安装任何程序。现阶段用户可通过Blockstack,Remote Storage进行身份验证,或者通过浏览器匿名使用该产品。使用正确的身份验证方法可以使用户保存音乐元数据,用户收藏夹和设置等内容,而如果清除浏览器,则“匿名”登录可能会导致数据丢失。用户通过身份验证后,便可以添加新内容或访问以前添加的内容。
面向前端的用户托管在Netlify上。在去中心化范围之外,通过下载html并模仿Netlify(检查此IPFS + ENS网站托管教程),当然可以对前端进行自我托管。
1、支持的文件格式
MP3
MP4/M4A
FLAC
OGG
WAV
WEBM
2、 CORS
您只需要做一件事即可使您选择的服务与该应用程序一起使用,从而设置了CORS(跨源资源共享)。以下是每种服务所需的说明:
3、亚马逊
您可以在S3 AWS控制台的“权限”选项卡下找到CORS配置编辑器。
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfigurationxmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin><AllowedMethod>GET</AllowedMethod><AllowedMethod>HEAD</AllowedMethod>
<MaxAgeSeconds>31536000</MaxAgeSeconds>
<ExposeHeader>Content-Length</ExposeHeader>
<ExposeHeader>Content-Type</ExposeHeader> <AllowedHeader>Range</AllowedHeader>
</CORSRule>
</CORSConfiguration>
4、BTFS
将带有协议的应用程序域添加到允许的来源列表中。
btfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["https://diffuse.sh", "http://diffuse.sh.ipns.localhost:8080", "http://127.0.0.1:44999"]'
您也可以在Web UI中进行此更改,可以在“设置→BTFS Config”下找到它。
{
"API": {
"HTTPHeaders": {
"Access-Control-Allow-Origin": [
"https://diffuse.sh", // ? Default
"http://diffuse.sh.ipns.localhost:8080", // IPNS
"http://127.0.0.1:44999" // Electron app
]
}
}
}
5、IPFS
将带有协议的应用程序域添加到允许的来源列表中。
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["https://diffuse.sh", "http://diffuse.sh.ipns.localhost:8080", "http://127.0.0.1:44999"]'
您也可以在Web UI中进行此更改,可以在“设置→IPFS Config”下找到它。
{
"API": {
"HTTPHeaders": {
"Access-Control-Allow-Origin": [
"https://diffuse.sh", // ? Default
"http://diffuse.sh.ipns.localhost:8080", // IPNS through IPFS Companion
"http://127.0.0.1:44999" // Electron app
]
}
}
}
6、Microsoft Azure存储
您可以在“设置-> CORS”下找到CORS配置。
然后在输入框中填写以下内容(从左到右):
ALLOWED ORIGINS *
ALLOWED METHODS GET, HEAD
ALLOWED HEADERS Range
EXPOSED HEADERS Content-Length, Content-Range
MAX AGE 0
7、Textile
将带有协议的应用程序域添加到配置中允许的来源列表中。
{
"API": {
"HTTPHeaders": {
"Access-Control-Allow-Origin": [
"https://diffuse.sh",
"http://127.0.0.1:8080",
"http://127.0.0.1:44999"
]
}
}
}
8、WebDAV
取决于您的WebDAV服务器。
Henrique Dias的WebDAV服务器的示例设置:
cors:
enabled: true
credentials: true
allowed_headers:
- Authorization
- Content-Type
- Depth
- Range
allowed_methods:
- GET
- HEAD
- PROPFIND
allowed_hosts:
- https://diffuse.sh
- http://127.0.0.1:44999
exposed_headers:
- Content-Length
- Content-Type
【星际假设】
如果星际视界想使用Diffuse该怎样办?星际视界作为用户会在Diffuse上进行身份验证并请求添加文件后,将登录到星际视界的Google帐户,并要求允许对Diffuse应用程序的权限。该权限是一个包含每个音频文件路径的列表。Diffuse以每个URL请求的1000个文件的块的形式工作,然后通过JSmediatags库从每个文件获取音乐标签/元数据。然后将从这些文件中解析出的元数据缓存在用户的存储提供程序中:在V1中,这仅限于Blockstack或RemoteStorage。这样,当星际视界登录并且先前加载的音乐中的任何元数据已经存在时。
【星际总结】
如果用一句话来总结Diffuse,用户可以通过Diffuse链接到自己的云和分布式存储的音乐播放器。从任何地方甚至本地内容访问他们拥有的音乐文件,一旦自动识别到我所存的音乐并缓存了元数据,用户的我们就可以恣意的欣赏任何应用文件。
——End——
编辑:星际视界IPFSNEWS 木木
来源:金色财经







