访问Firebase存储中没有令牌的URL

mmvthczy  于 2023-03-03  发布在  其他
关注(0)|答案(4)|浏览(145)

我有一个firebase存储下载网址
https://firebasestorage.googleapis.com/v0/b/siren-5eee7.appspot.com/o/profile%2FC6jNlR0F4cZBPv7wF0REWUNVor33?alt=media&token=63a9130e-2ba6-4f38-ac3f-2231c54a1043
没有token参数我怎么访问这个网址?
例如,如果我访问上面的网址没有令牌将有403错误显示permisson拒绝.
我的firebase存储安全规则如下:

service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read, write: if request.auth != null;
    }
  }
}

此文件位于/etc文件中。如何操作?

zvms9eto

zvms9eto1#

尝试更改规则:

service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read;
      allow write: if request.auth != null;
    }
  }
}
yyyllmsg

yyyllmsg2#

如果您需要allow accessing only the images的规则而不需要令牌,则必须执行以下操作:

service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read: if request.auth!=null || resource.contentType.matches('image/.*');
      allow write: if request.auth!=null;
    }
  }
}
06odsfpq

06odsfpq3#

据我所知,您正试图使整个bucket公开可用。使用Firebase访问规则可能不是最好的,您可能希望通过Google Cloud的存储层使bucket读取访问可用。
要做到这一点,最简单的方法之一是使用Google Cloud Console Storage
选择bucket,点击bucket进行配置并打开权限选项卡。由于这是Firebase管理的bucket,它将具有Google所谓的细粒度访问控制。别担心,添加公共访问非常简单。点击Add members按钮,然后在侧栏中添加allUsers作为新成员。并给予其存储〉存储对象查看器的角色。您可以在存储文档中看到更多细节。
这将使bucket可通过<bucketname>.storage.googleapis.com公开访问。如果您在Firebase中创建了额外的bucket,并且该bucket与您拥有的域相匹配,并在Google Search Console中进行了验证,则可以创建一个以自定义域命名的bucket,并使用指向c.storage.googleapis.com.的自定义域的CNAME公开访问该bucket(这只适用于HTTP,不适用于HTTPS)。你可以在Storage Endpoints Docs看到更多细节,谷歌云的文档解释得比我好得多。希望这能有所帮助!

r3i60tvu

r3i60tvu4#

如果您需要访问某个URL(图像)没有令牌参数使用下面的规则:

rules_version = '2';
service firebase.storage {
  match /b/{bucket}/o {
    match /images/users/default.png {
      allow read;
    }
    match /{allPaths=**} {
      allow read, write: if request.auth != null;
    }
  }
}

如果您需要访问某个文件夹没有令牌参数使用下面的规则:

rules_version = '2';
service firebase.storage {
  match /b/{bucket}/o {
    match /images/{wildcardpath=**} {
      allow read;
    }
    match /{allPaths=**} {
      allow read, write: if request.auth != null;
    }
  }
}

注意:将url或文件夹更改为您的

相关问题