我正在尝试通过dev_appserver.py
dev服务器访问托管在远程云存储桶上的文件。
与google云存储的直接链接工作如下:
https://leanplum-wordpress.storage.googleapis.com/leanplum-black.svg
在通过dev_appserver作为本地用户时,没有:
http://localhost:8080/_ah/gcs/leanplum-black.svg
日志输出:
INFO 2016-07-06 22:37:16,461 module.py:788] default: "GET /_ah/gcs/leanplum-black.svg HTTP/1.1" 200 116
我正在像这样运行dev服务器:
dev_appserver.py --default_gcs_bucket_name=leanplum-wordpress .
怎么了?
发布于 2016-10-03 15:34:18
我们还在讨论这个问题。我们相信这是一个源自Appengine Wordpress插件的问题。
为了正确加载图像,我们提出了以下解决办法:
在Google中创建一个Bookmarklet并添加以下网址:
javascript:var start = var targetUrls = ["//" + window.location.host + "/wp-content/uploads/","//" + window.location.host + "/_ah/gcs/bucket-name/"];var htmlAttributes = ["src", "srcset"];jQuery("img").each(function(index, img) {targetUrls.forEach(function(pattern) {htmlAttributes.forEach(function(htmlAttr) {var htmlObj = jQuery(img).attr(htmlAttr);if (htmlObj) {jQuery(img).attr(htmlAttr, htmlObj.replace(new RegExp(pattern, "g"), "//bucket-name.storage.googleapis.com/"));}});});});
完整法典:
var targetUrls = [
"//" + window.location.host + "/wp-content/uploads/",
"//" + window.location.host + "/_ah/gcs/bucket-name/"
];
var htmlAttributes = ["src", "srcset"];
jQuery("img").each(function(index, img) {
targetUrls.forEach(function(pattern) {
htmlAttributes.forEach(function(htmlAttr) {
var htmlObj = jQuery(img).attr(htmlAttr);
if (htmlObj) {
jQuery(img).attr(htmlAttr, htmlObj.replace(new RegExp(pattern, "g"), "//bucket-name.storage.googleapis.com/"));
}
});
});
});
发布于 2016-07-08 09:56:17
您需要确保使用google云项目配置auth,并且客户端将连接到生产google云存储,而不是本地开发(在检测到本地开发服务器运行时,默认情况下会发生这种情况)。
见这里。
发布于 2017-12-14 15:42:30
我相信你需要包括桶名:
localhost:port/_ah/gcs/bucket_name/file_suffix
在默认情况下端口为8080,并且该文件被写入:/bucket_name/ file _后缀
看来你去了:
http://localhost:8080/_ah/gcs/leanplum-black.svg
但是需要包括桶名,它可能是
http://localhost:8080/_ah/gcs/leanplum-wordpress/leanplum-black.svg
请注意,我在文档中没有找到这一点。这个问题帮助我猜到我需要在url中包含桶名,所以我希望这对其他人也有帮助!
https://stackoverflow.com/questions/38234985
复制