在App Engine Flexible Environment中运行dart服务器,提供大于32MB的文件似乎存在限制。
我想要提供的文件有一些要求:
目前,我尝试使用gcloud库从存储桶中读取文件,然后输入request.response
。由于例如:HTTP response was too large: 33554744. The limit is: 33554432.
有没有办法从存储中提供更大的文件?关于这个主题的文档很混乱(我认为根本没有dart特定的文档)。我一直在阅读有关Blobstore的内容,但我不确定此解决方案是否适用于飞镖。
答案 0 :(得分:1)
根据@filiph的建议,您可以使用Google Cloud Storage中的answer。
服务器端,我在python中有以下代码:
import time
import base64
from oauth2client.service_account import ServiceAccountCredentials
def create_signed_url(file_location):
# Get credentials
creds = ServiceAccountCredentials.from_json_keyfile_name('filename_of_private_key.json')
client_id = creds.service_account_email
# Set time limit to two hours from now
timestamp = time.time() + 2 * 3600
# Generate signature string
signature_string = "GET\n\n\n%d\n%s" % (timestamp, file_location)
signature = creds.sign_blob(signature_string)[1]
encoded_signature = base64.b64encode(signature)
encoded_signature = encoded_signature.replace("+", "%2B").replace("/", "%2F")
# Generate url
return "https://storage.googleapis.com%s?GoogleAccessId=%s&Expires=%d&&Signature=%s" % (
file_location, client_id, timestamp, encoded_signature)