TearSnow Fan


微软SkyDrive网盘用作图床时的直链地址获取

SkyDrive作为一个万能网盘,里面的东西可以直接拿来当外链,比如图片、音乐,我们就不用到处找图床了。

小站一直使用 SkyDrive 网盘作为图床,但是近期在使用 WordPress 的图片缩放插件(Auto Highslide)和支持图片暗箱显示的主题时,发现这些插件和功能对小站的图片不起作用。经查看插件代码,这些增加图片显示效果的插件是通过将图片链接到图片本身的地址,也即在图片外面加个<a> 标签,然后增加<a>标签的 class 属性或其他属性,使用 jQuery 来加载图片效果。

为了确定问题是出在图片的 HTML 标签上,还是 jQuery 上,根据 Auto Highslide 插件的原理,我对文章中的图片的<a>标签手工添加了两个属性,分别是class="highslide-image" 和 onclick="return hs.expand(this);"。添加完毕后,插件支持的效果可以正常显示,说明问题出在插件没有正确地修改图片的 HTML 标签。

AutoSlide 插件对图片的 HTML 标签修改部分的代码为:

/* Add HighSlide Image Code */
add_filter('the_content', 'addhighslideclass_replace');
function addhighslideclass_replace ($content)
{ global $post;
$pattern = "/&lt;a(.*?)href=('|\")([^&gt;]*).(bmp|gif|jpeg|jpg|png)('|\")(.*?)&gt;(.*?)&lt;\/a&gt;/i";
$replacement = '&lt;a$1href=$2$3.$4$5 class="highslide-image" onclick="return hs.expand(this);"$6&gt;$7&lt;/a&gt;';
$content = preg_replace($pattern, $replacement, $content);
return $content;
}

看后恍然大悟,因为小站中的图片都是在SkyDrive中的图片上点击“View Original”后复制得到的图片链接,例如下面的 SkyDrive Logo 的链接形式为:

https://ltgxtg.dm1.livefilestore.com/y2ppcJJyVM4xabzjVH7Sl5ZORD49kFxpj2YCGkC36BPa2zlMZtOjRwHd0WHhCvGwFpjX7wHa71SgIrTUzFDkAmLIJroSAFGWiWeAIEZxsEQrqo/SkyDrive-logo.png?psid=1

虽然可以显示为图片,但是由于带了“?psid=1”,并没有被插件的函数识别出是图片链接,所以未作修改,导致图片效果不能正常显示。

手工的解决方法是:将图片链接结尾的“?psid=1”去掉,个人建议不要将链接开头的https替换为http,因为经常遇到以http开头的图片链接无法显示的情况。

更好的解决方法是:使用 SkyDrive 直链地址。

这里推荐“动漫东东”论坛网友“枫谷剑仙”制作的小工具:提取SkyDrive直链地址工具。(从本站 SkyDrive 网盘下载1.1.11版

提示:如果SkyDrive文件夹地址形式为“https://skydrive.live.com/#cid=xxxx……xxxx”导致无法识别,可以将地址中的"#"替换为"?"即可。

还可以使用作者提供的提取工具在线版:新浪源 或者 个人虚拟主机源(自动获取代码用不了)

提取SkyDrive直链地址工具使用说明

重要提示:可能由于服务调整,博主发现用此工具生成的直链地址不如在SkyDrive中查看源图片得到的链接稳定,请慎重使用!

程序语言:VB 6.0

支持系统:XP 以上

1. 如果文件夹权限不是“公共”,外链别人就无法看到,软件也无法自动获取源代码,你需要先设置需要被直链的文件夹的共享级别“公共”才行,也就是在“分享”-“获取连接”里创建“公共”链接。一般为了方便都是直接将整个文件夹设置为公共,一个一个文件设太慢了。设置公共权限如下:

2. 首先在文本框输入你的SkyDrive网盘需要外链的文件夹页面的地址(非公共外链地址),软件会自动识别是否符合规则,并且在后台转换为真正能够使用的网址,并获取源代码。

  • 如果你不希望判断网址请点击“自定义URL”。
  • 如果你希望使用本地保存的网页代码请点击“来自文件”(网页上刷新一下,右键,查看源代码,全选复制,新建文本,粘贴,保存,再用本软件打开)

3. 第一步的三个按钮软件会自动帮你点击“生成代码”,在这之后如果你对代码格式不满意,可以将代码格式修改为你希望的后再点“生成代码”即可生成你最新的格式。
之所以不每次都点上面的获取源代码按钮是为了节省访问网页的下载时间,除非你的文件有更新,否则没必要重新获取源代码。
而且有时候你尝试多了,会被微软暂时屏蔽,软件就无法自动获取代码了(手动通过网页还是行)

4. 如何知道“生成代码格式”里有哪些代码可以用呢,点击生成的“外链地址列表”每条外链右方的问号按钮即可查看到可以使用的“%t(名称)”型变量。
更详细的可以查看本帖后面的附录

5. 如果编好了自己喜欢的格式,点击右方的加号按钮,并输入一个名称,软件就会将你当前的格式代码加入常用代码中(正常关闭窗口后才存入设置文件,强制关闭程序不会保存)
旁边的减号自然就是删除了,上下箭头就是移动顺序(软件启动时会自动加载第一个)

6.如果对右下方生成的“全部外链地址集合”格式感到不满意(比如回车不够),可以修改设置文件中的“AllLinkFormat”
“AllLinkFormat”只有“\r”、“\n”、“$1”三个特殊值,分别对应Cr、Lf、外链文本,其他字符将不会被替换(保持原样),如果需要多个换行,就多用几个“\r\n”即可。

7. 生成外链文本框是单行的,如果希望生成多行的外链代码的话,请设置“/Soft/Window/Form_Main/Text_CodeFormat”与“/Soft/Window/Form_Main/Text_Link”的“Multline”=1

8. VB6不支持Unicode字符,因此如果你是有很多特殊字符的很多日文歌用这个可能会出错,这个时候请使用在线版吧。

设定说明:

“GetSkyDriveLinkConfig.xml”是软件的设置文件,请使用UTF-8编码打开

<?xml version="1.0" standalone="yes"?>
<Soft><!--ListDistance是产生的列表之间相隔的像素距离,AllLinkFormat是全部链接集合的格式-->
<Config 
ListDistance="10" AllLinkFormat="$1\r\n"/>
<TemplateList>
<Template 
name="普通外链">http://storage.live.com/items/%t(id)?filename=%t(name)%t(extension)</Template>
<Template 
name="图片外链">[im论坛网页需要g]http://storage.live.com/items/%t(id)?filename=%t(name)%t(extension)[/img]</Template>
<Template 
name="含大小图片外链">[img=%t(photo.width),%t(photo.height)]http://storage.live.com/items/%t(id)?filename=%t(name)%t(extension)[/img]</Template>
</TemplateList>
<Window>
<!--可以在这里自行修改软件样式,只要知道每个控件名以及其的属性就行了,所有控件列表见附录三-->
<Form_Main Width="953" Height="509" PicURL="俺の嫁.jpg" PicDrawStyle="0">
<Picture_LinkList_In 
PicURL="俺の嫁.jpg" PicDrawStyle="0" PicX="-10" PicY="-130"/>
<Label_Link 
Caption="%t(name)%t(extension) - %t(creatorName)"/>
<Label_LinkWarn 
Caption="警告:该文件权限为“%t(sharingLevelValue).%t(sharingLevel)”,可能会导致无法直链"/>
</Form_Main>
<CodeListBox
>
</CodeListBox>
</Window>
</Soft>

注意:
外链地址可使用“%t(名称)”变量与“%s(名称)”变量
Caption与Text属性可使用“%s(名称)”变量
PicURL等地址变量可使用“%名称%”的系统变量

附录一:

“%名称%”型变量
AppPath 软件所在地址,也可以直接留空使用相对地址
AppEXEName 软件程序文件名
AppTitle 软件名称
ResourceDir %Windir%\Resources
其他系统环境变量 读取系统环境变量
“%s(名称)”型变量
AppPath 软件所在地址,也可以直接留空使用相对地址
AppEXEName 软件程序文件名
AppTitle 软件名称
AppMajor 软件主版本
AppMinor 软件次版本
AppRevision 软件编译版本
AppBeta 软件版本名
ResourceDir %Windir%\Resources
其他系统环境变量 读取系统环境变量
“%t(名称)”型变量
fileIndex 文件编号
其他 点击“?”按钮查看

附录二:

所有控件列表,后面有Index_0的是控件数组,直接更改没有Index_0的应用到所有元素,更改Index_0数字就更改其对应的单个元素设置(不过本软件没用,因为一开始就没有这些控件,是后面动态生成的)。所有Width、Height都已经设置为像素,直接输像素大小即可。图片的设置没人会去关心吧,就不说了

/Soft/Window/Form_Main
/Soft/Window/Form_Main/Command_CreatLinkList
/Soft/Window/Form_Main/Command_GetFromFile
/Soft/Window/Form_Main/Command_GetFromURL
/Soft/Window/Form_Main/Command_ListDown
/Soft/Window/Form_Main/Command_ListUp
/Soft/Window/Form_Main/Command_DelToList
/Soft/Window/Form_Main/Command_AddToList
/Soft/Window/Form_Main/Timer_Update
/Soft/Window/Form_Main/Text_AllLinkCode
/Soft/Window/Form_Main/List_CodeList
/Soft/Window/Form_Main/Command_NewWindow
/Soft/Window/Form_Main/Picture_LinkList_Out
/Soft/Window/Form_Main/Picture_LinkList_In
/Soft/Window/Form_Main/Command_Link_AllValue
/Soft/Window/Form_Main/Command_Link_AllValue/Index_0
/Soft/Window/Form_Main/Text_Link
/Soft/Window/Form_Main/Text_Link/Index_0
/Soft/Window/Form_Main/Label_Link
/Soft/Window/Form_Main/Label_Link/Index_0
/Soft/Window/Form_Main/Label_LinkWarn
/Soft/Window/Form_Main/Label_LinkWarn/Index_0
/Soft/Window/Form_Main/VScroll_LinkList
/Soft/Window/Form_Main/Text_CodeFormat
/Soft/Window/Form_Main/Command_Updata
/Soft/Window/Form_Main/Command_Exit
/Soft/Window/Form_Main/Command_Get
/Soft/Window/Form_Main/Text_URL
/Soft/Window/Form_Main/Label_LinkList
/Soft/Window/Form_Main/Label_AllLinkCode
/Soft/Window/Form_Main/Label_CodeList
/Soft/Window/Form_Main/Label_CodeFormat
/Soft/Window/Form_Main/Label_URL
/Soft/Window/Form_Main/Label_AllLinkCodeFormat
/Soft/Window/Form_Main/Text_AllLinkCodeFormat
/Soft/Window/CodeListBox
/Soft/Window/CodeListBox/Command_Ok
/Soft/Window/CodeListBox/Text_Code

本文固定链接: http://blog.xieyc.com/skydrive-direct-link-address/ | 小谢的小站

该日志由 xieyc 于2013年05月17日发表在 站长 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: 微软SkyDrive网盘用作图床时的直链地址获取 | 小谢的小站
关键字: , , , , , , ,

目前共有 5 条留言 【 访客:5 条, 博主:0 条 】 访客以 5:0 大幅领先博主!

  1. 板凳
    beyondme37:

    我的主题暗箱功能也不用。 😯

    2013-05-17 17:49
  2. 沙发
    figo:

    看不大明白,感觉好复杂……

    2013-08-30 12:16
    • 是有点麻烦,而且不稳定。。。所以我都还是手工查看源图片的……

      2013-08-31 22:11

发表评论

:wink: :neutral: :mad: :twisted: :smile: :shock: :sad: :roll: :oops: :eek: :mrgreen: :lol: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

快捷键:Ctrl+Enter