Javascript 使用REST API将文件上载到Firebase存储

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文档指导您使用其JavaScript库将文件上载到Firebase存储

我正在运行一台没有安装NodeJS的服务器。是否可以通过Firebase REST API上传图像、音频等文件

目前,我正在bash脚本中使用curl发送JSON。我不希望将base64编码存储在数据库字段中,我希望该文件存储在存储部分内的文件夹中

存储文件夹如下所示:


Firebase存储在引擎盖下使用Google云存储,因此您可以使用GCS REST API获得90%的存储空间。()

有一些不同之处

  • 只有通过Firebase存储SDK访问下载URL时,才会自动生成下载URL
  • 您将无法使用Firebase身份验证通过GCS REST端点上载。您需要设置OAuth(您可以通过Google登录进行身份验证)或服务帐户。(以下是如何从Node.js到GCS进行身份验证的示例。)

  • 可以使用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}