“Firebase Storage”,用于图像 - 但是,获取实际的 URL?

2024-05-13

正在将图像发送到“Firebase Storage”系统...

sr ... a StorageReference (ie, FIRStorageReference)
let task = sr.putData(data)
task.observe(.success) { [index] snapshot in
    guard let downloadURL: URL = snapshot.metadata?.downloadURL()
    else { .. err }

然而,最终的结果是 URL,如下所示:

它工作得绝对完美 - 然而 -

该网址很简单不是 jpeg 的 URL- 这只是一个文件的 URL。点击它就会出现你获取 jpeg 文件下载.

这似乎令人难以置信 - 对于所有其他在线存储(AWS 等),您只需获得“jpeg 的实际 URL”。

这里有解决办法吗?


正如 BC 下面所问的,查看标题:

$ cat headers.txt
HTTP/1.1 200 OK
X-GUploader-UploadID: AEnB2Ur3b5CNUIWWZdwn-666slsPqTjJT3GF83m6sJ-mzx...666
Expires: Sat, 29 Jul 2017 23:22:38 GMT
Date: Sat, 29 Jul 2017 23:22:38 GMT
Cache-Control: private, max-age=0
Last-Modified: Sat, 29 Jul 2017 18:55:21 GMT
ETag: "9e4491f86bd78ee62d241d962893f666"
x-goog-generation: 1501354521940666
x-goog-metageneration: 1
x-goog-stored-content-encoding: identity
x-goog-stored-content-length: 8992
x-goog-meta-firebaseStorageDownloadTokens: cd9e7a4b-6666-666-b6b8-5a700bed2e64
Content-Type: application/octet-stream
Content-Disposition: inline; filename*=utf-8''0.jpg
x-goog-hash: crc32c=z72qJQ==
x-goog-hash: md5=nkSR+GvXjuYtJB2WKJP6666==
x-goog-storage-class: STANDARD
Accept-Ranges: bytes
Content-Length: 8992
Server: UploadServer
Alt-Svc: quic=":443"; ma=2592000; v="39,38,37,36,35"

您的代码将原始二进制数据上传到存储,而不考虑其内容类型。使用时,Storage SDK 不会尝试解释该 NSData blob 的内容putData。然而,内容类型will可以推断,如果使用putFile.

如果您需要使用putData,而是尝试指定一些元数据 https://firebase.google.com/docs/storage/ios/upload-files#add_file_metadata随着上传putData:metadata:.

在 Firebase 控制台中,您可以通过选择上传的文件来检查其内容类型。它也应该读取右侧面板中的图像/jpeg。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

“Firebase Storage”,用于图像 - 但是,获取实际的 URL? 的相关文章

随机推荐