Javascript 使用REST API将文件上载到Firebase存储
现在,Firebase文档指导您使用其JavaScript库将文件上载到Firebase存储 我正在运行一台没有安装NodeJS的服务器。是否可以通过Firebase REST API上传图像、音频等文件 目前,我正在bash脚本中使用curl发送JSON。我不希望将base64编码存储在数据库字段中,我希望该文件存储在存储部分内的文件夹中 存储文件夹如下所示:Javascript 使用REST API将文件上载到Firebase存储,javascript,jquery,json,bash,firebase,Javascript,Jquery,Json,Bash,Firebase,现在,Firebase文档指导您使用其JavaScript库将文件上载到Firebase存储 我正在运行一台没有安装NodeJS的服务器。是否可以通过Firebase REST API上传图像、音频等文件 目前,我正在bash脚本中使用curl发送JSON。我不希望将base64编码存储在数据库字段中,我希望该文件存储在存储部分内的文件夹中 存储文件夹如下所示: Firebase存储在引擎盖下使用Google云存储,因此您可以使用GCS REST API获得90%的存储空间。() 有一些不同之处
Firebase存储在引擎盖下使用Google云存储,因此您可以使用GCS REST API获得90%的存储空间。() 有一些不同之处
可以使用REST API将文档上载到Firebase存储。我用Python实现了
请求
库来设置HTTP头并发出POST请求。这个过程在其他语言中应该类似,或者使用cURL
要在未经授权的情况下上载,请执行以下操作:
def firebase_upload():
"""
Executes a POST request to upload an image to Firebase Storage.
DEMONSTRATION ONLY, USE NO FURTHER!
args: None
returns: response (json) with the response to the request
usage: res = firebase_upload()
"""
response = None
file2upload = "/Your/Path/To/your_pic.png"
file_binary = open(file2upload, "rb").read()
# HTTP
url2file = 'https://firebasestorage.googleapis.com/v0/b/<your-project-ID.appspot.com>/o/stash%2Fyour_pic.png'
headers = {"Content-Type": "image/png"}
r = requests.post(url2file, data=file_binary, headers=headers)
response = r.json()
return response
下载URL是URL2文件,在API响应中添加了“downloadTokens”。添加:“?alt=media&token=”后跟标记字符串
该示例显示了如何将映像添加到Firebase存储,通过调整此模式,可以使用REST API执行所有CRUD操作。您不需要nodejs服务器,Firebase存储是客户端,您只需要一个包含firebase库和javascript脚本的html文件……@Ymmanuel它正在没有浏览器的服务器上运行。对不起,你不能运行HTML页面。好的,我现在明白了…现在只有实时数据库可以使用RESTAPI访问。。。所以我不认为你可以在没有服务器的情况下上传文件。你知道JavaScript库是否正在使用WebSockets进行数据流传输吗?对不起,我不知道
{'name': 'stash/your_pic.png',
'bucket': '<your-project-ID>.appspot.com',
'generation': '1608437408388390',
'metageneration': '1',
'contentType': 'image/png',
'timeCreated': '2020-12-20T04:10:08.388Z',
'updated': '2020-12-20T04:10:08.388Z',
'storageClass': 'STANDARD',
'size': '52628',
'md5Hash': 'mmkqwEek6tMAZmvooQ9X7g==',
'contentEncoding': 'identity',
'contentDisposition': "inline; filename*=utf-8''your_pic.png",
'crc32c': 'fhlSmw==',
'etag': 'CKaq+6LY2+0CEAE=',
'downloadTokens': '<secure_token>'}
headers = {"Content-Type": "image/png", "Authorization": "Bearer "+auth_token}