我想将外部图像(我有 URL)上传到 Blobstore。我无法发布数据,因为它在另一个网站上。
它的上传方式很简单:(a) 使用 fetch 服务来获取 URL,然后 (b) 使用文件服务将来自 URL 的数据存储为 blob。但是,这需要将数据加载到我正在运行的实例中。据我了解,获取服务的所有数据都必须先驻留在内存中,然后才能上传,这限制了最大数据大小。如果 fetch 服务流式传输数据,那也不会太糟糕。
有谁知道我可以以节省内存的方式将外部图像复制到 blob 中的方法?
蒂姆
我想将外部图像(我有 URL)上传到 Blobstore。我无法发布数据,因为它在另一个网站上。
它的上传方式很简单:(a) 使用 fetch 服务来获取 URL,然后 (b) 使用文件服务将来自 URL 的数据存储为 blob。但是,这需要将数据加载到我正在运行的实例中。据我了解,获取服务的所有数据都必须先驻留在内存中,然后才能上传,这限制了最大数据大小。如果 fetch 服务流式传输数据,那也不会太糟糕。
有谁知道我可以以节省内存的方式将外部图像复制到 blob 中的方法?
蒂姆
如果服务器支持,您可以分块下载文件。通常,服务器通过发送Accept-Ranges标头来表明这一点。您可以通过设置Range标头来请求特定的字节范围。如果服务器接受这一点并且只提供指定的字节范围,它会随请求发送Content-Range标头。
理论上,您应该能够继续附加到文件对象,直到您完成它。