我有一个存储了图像的存储桶,当我使用图像的公共URL检索图像时,它会在浏览器中下载图像而不是在浏览器中显示图像,如何查看图像而不是下载它。我对上传的图像使用以下 URL。
https://www.googleapis.com/download/storage/v1/b/image-downloader-bucket/o/a06266f6-6082-468e-92ca-f918a48533a8?generation=1455661996337000&alt=media
有人可以告诉我如何创建正确的URL来查看图像吗?
如果对象是公开可读的,您可以直接在"https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME"查看它,在您的情况下,这将是 https://storage.googleapis.com/image-downloader-bucket/a06266f6-6082-468e-92ca-f918a48533a8。
我的问题是我没有为对象设置mimetype。没有它,浏览器不知道它是图像,所以它会下载文件而不是在浏览器窗口中显示它。
添加这个可以解决问题:
const blobStream = blob.createWriteStream({
metadata: {
contentType: "image/jpeg"
}
});
与@ehero响应类似,但对于 python,重点是在上传文件之前使用 content_type blob 属性:
from google.cloud import storage
storage_client = storage.Client.from_service_account_json('your/path/to/service/credentials.json')
bucket = storage_client.bucket('my-bucket-name')
blob = bucket.blob('my/path/in/storage.jpg')
blob.content_type = 'image/jpeg' # This one is the important
blob.upload_from_file(file) # Also available upload_from_filename
是的,有!您实际上通过图像API调整存储在Google Cloud Storage中的文件的图像大小。看看这个链接:
https://cloud.google.com/appengine/docs/java/images/
- 转到谷歌云控制台>存储>浏览器https://console.cloud.google.com/storage/browser
- 点击您的存储桶
- 您可以在存储桶中选择图像/文件,并通过单击 3 点选项来编辑访问权限并将其公开。
- 它将生成公共网址
有关详细信息,请参阅:公开数据