【发布时间】:2021-05-05 06:15:16
【问题描述】:
我想在 deno 中从 github 导入一个模块,该模块仅作为 github 版本提供,而不是存储库中代码的一部分。
我要导入:https://github.com/zingi/random-lon-lat-generator/releases/download/v0.1.0/random_lon_lat_generator.js
我试过了:
import * as wasm from 'https://github.com/zingi/random-lon-lat-generator/releases/download/v0.1.0/random_lon_lat_generator.js'
这给出了这个错误:
Download https://github.com/zingi/random-lon-lat-generator/releases/download/v0.1.0/random_lon_lat_generator.js
Download https://github-releases.githubusercontent.com/352299341/6ca4b280-9638-11eb-9f4a-c7b6b890c5e9?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20210405%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20210405T161838Z&X-Amz-Expires=300&X-Amz-Signature=82fbc720c3a05232836678385da43cecd2a9d29ca959f736e5e8a47ce62b23bf&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=352299341&response-content-disposition=attachment%3B%20filename%3Drandom_lon_lat_generator.js&response-content-type=application%2Foctet-stream
error: An unsupported media type was attempted to be imported as a module.
Specifier: https://github-releases.githubusercontent.com/352299341/6ca4b280-9638-11eb-9f4a-c7b6b890c5e9?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20210405%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20210405T161838Z&X-Amz-Expires=300&X-Amz-Signature=82fbc720c3a05232836678385da43cecd2a9d29ca959f736e5e8a47ce62b23bf&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=352299341&response-content-disposition=attachment%3B%20filename%3Drandom_lon_lat_generator.js&response-content-type=application%2Foctet-stream
MediaType: Unknown
我知道如果它是 git 中跟踪文件的一部分,我可以使用 raw.githubusercontent.com 轻松导入一个模块
但是因为模块还包含编译好的 WebAssembly,所以我不想用 git 跟踪它。
如果不可能,您对如何使这项工作有任何其他建议吗?
编辑:错误消息似乎与此post 中的相同。但是问题的来源是不同的,不能用从那里接受的答案来解决。 github 版本中的资产似乎没有永久链接,例如 git 中带有raw.githubusercontent.com 的跟踪文件。 github 发布页面上提供的文件链接似乎会转发 (302) 到生成的、限时可用的 url,例如:github-releases.githubusercontent.com/...。因此,如果有任何可能获得指向 github 资产的永久“原始”链接,将会很有趣。
【问题讨论】:
-
它是因为,它的
application/xml不是 JavaScript ,还要注意MediaType: Unknown时,我请求它给了我 http 403 错误。 -
从
server: AmazonS3请求,错误:<Error> <Code>AccessDenied</Code> <Message>Request has expired</Message> <X-Amz-Expires>300</X-Amz-Expires> <Expires>2021-04-05T16:23:38Z</Expires> <ServerTime>2021-04-05T21:03:05Z</ServerTime> <RequestId>CJBY8NSXG35XJHJD</RequestId> <HostId>XT38SvXhRD6ZKG7Vx0tt1GikPA6AyVaqeCQFS4aUpqYZbIEf0k3ZbmO0wzh2Q4RB5E9Gemwpy+g=</HostId> </Error> -
@Nur 您可能试图从重定向的 url 下载,这似乎是一个自动生成的 url,仅在有限的时间内可用。如果您使用
https://github.com/zingi/random-lon-lat-generator/releases/download/v0.1.0/random_lon_lat_generator.js,您应该不会收到 403 错误。 -
@zingi 似乎没有其他方法可以从 GitHub 获取内容类型为
text/plain或application/javascript以获取发布资产。但是有一个解决方法,您可以在 Glitch 上创建一个小型服务器,它会下载资产并使用正确/所需的内容类型返回响应。
标签: javascript github deno