文件如何生成下载链接?
Posted 落水飘零
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件如何生成下载链接?相关的知识,希望对你有一定的参考价值。
做自媒体这些年,时常需要通过文章分享一些文档给读者下载使用,在文章中分享文档(如Word、Excel、PPT、PDF等),难免需要把文件生成链接放在文章中分享给粉丝。
做过自媒体的同学都知道,目前主流的自媒体平台,基本上都不允许在文章中直接添加外链,只能把文件链接通过文本或者二维码的方式分享。如果是公众号文章,可以通过附件小程序链接分享。
下面分别介绍一下如何把文件生成小程序链接和网页链接。
一、把文件生成小程序链接
小程序链接适合添加在公众号文章里面,可以实现点击链接直接下载文件。
第一步,把文件上传到简文档网站(https://iduodou.com),上传完毕即可生成文件对应的小程序链接。
第二步,点击文件记录“直达链接”下方的“复制”按钮,复制文件的直达链接。
第三步,把直达链接粘贴到公众号文章编辑器中合适的位置即可。注意,是公众号自家的编辑器,不是第三方的排版工具如秀米、135、96编辑器之类的。如果需要在第三方编辑器中使用,可以看一下这篇文章:秀米怎么添加附件链接
也可以把编辑好的文章导入到公众号自家的编辑器,再来添加附件。
上面就是把文件生成小程序链接的教程。添加完的附件链接是这样的:
二、把文件生成网页链接
第一步,打开百度网盘后台,点击“上传”按钮,选择文件上传到百度网盘。
第二步,点击文件的分享按钮,鼠标放上文件记录就会出现。
第三步,在弹窗中设置分享参数,按下图设置就行,提取码自己设定,设置完毕点击“创建连接”,生成分享链接。
最后,复制链接和提取码,即可把文件生成一个百度网盘分享链接。
如何生成 html 文件以提供 manifest.plist 文件的下载链接,以便将 ipa 安装到 iphone
【中文标题】如何生成 html 文件以提供 manifest.plist 文件的下载链接,以便将 ipa 安装到 iphone【英文标题】:How to generate html file to give download link to manifest.plist file in order to install ipa to iphone 【发布时间】:2013-05-29 04:45:46 【问题描述】:我已经使用 jenkins 使用 xcbuild packageApplication 通过 xcode iphone 项目构建,方法是将其全局路径提供给 jenkins。使用包括设备 UDID 的临时配置文件。它正在成功生成 ipa 文件,但我们如何使用 jenkins.I 中的 html 文件分发它已经编写了一个 shell 脚本来生成清单和其他 jenkins 设置,它工作正常。我的代码如下:-
设置构建_参数化
在 jenkins 配置中设置构建后操作。
#!/bin/sh
function fail
echo "$*" >&2
exit 1
function section_print
echo "\n=== $* ==="
section_print "Building $CONFIGURATION";
if [ -z $CONFIGURATION ]; then
fail "No configuration specified";
exit 1;
fi
#strange way to force backslash
if [ $PROJDIR ]; then
PROJDIR=$PROJDIR%/
PROJDIR="$PROJDIR/"
section_print "Project Dir is specified and is $PROJDIR"
cd "$PROJDIR" || fail "no directory $PROJDIR"
pwd
fi
section_print "Unlocking keychain"
security unlock-keychain -p "password" ~/Library/Keychains/login.keychain
section_print "Cleaning build"
xcodebuild -configuration "$CONFIGURATION" clean || fail "Clean failed"
section_print "Building $CONFIGURATION"
xcodebuild -configuration "$CONFIGURATION"/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk || fail "Build failed"
section_print "Packaging ipa"
BUILD_PATH=build/"$CONFIGURATION"-iphoneos
#we are already in the $PROJDIR
cd "$BUILD_PATH" || fail "no directory 'build/$CONFIGURATION-iphoneos'"
for file in "*.app"
do
APP_NAME=`echo $file`
done
APP_NAME=$APP_NAME%.*
section_print "Removing old artefacts"
cd "$WORKSPACE"
rm -f *.ipa
rm -f *.dSYM.zip
rm -f *.mobileprovision
#take $PROJDIR into account
section_print "Application name $APP_NAME"
cd "$PROJDIR$BUILD_PATH"
rm -rf Payload
rm -f "$APP_NAME".*.ipa
mkdir Payload
cp -Rp "$APP_NAME.app" Payload/
if [ -f "$WORKSPACE"/iTunesArtwork ]; then
cp -f "$WORKSPACE"/iTunesArtwork Payload/iTunesArtwork
fi
IPA_FILE="$APP_NAME.$BUILD_ID.$BUILD_NUMBER.ipa"
zip -r "$IPA_FILE" Payload
section_print "Compressing dSYM"
rm -f "*.dSYM.zip"
DSYM_FILE="$APP_NAME.$BUILD_ID.$BUILD_NUMBER.dSYM.zip"
zip -r "$DSYM_FILE" "$APP_NAME.app.dSYM"
section_print "Exporting profile"
cp -f "$APP_NAME.app/embedded.mobileprovision" profile.mobileprovision
section_print "Get the profile name"
PROFILE_NAME=`strings ./profile.mobileprovision | grep -A1 '<key>Name</key>' | tail -n1 | awk -F'<string>' 'print $2' | awk -F'</string>' 'print $1'`
PROFILE_NAME=$PROFILE_NAME//'*'/
PROFILE_NAME=$PROFILE_NAME//'?'/
PROFILE_NAME="$PROFILE_NAME.mobileprovision"
section_print "Profile name is $PROFILE_NAME"
mv -f "profile.mobileprovision" "$PROFILE_NAME"
rm -f "$WORKSPACE/*.mobileprobision" || fail "Failed to remove $WORKSPACE/*.mobileprovision"
rm -f "$WORKSPACE/$IPA_FILE" || fail "Failed to remove $WORKSPACE/$IPA_FILE"
section_print "Copying $IPA_FILE to artifacts"
cp -v "$IPA_FILE" "$WORKSPACE/." || fail "Failed to copy ipa"
cp -v "$PROFILE_NAME" "$WORKSPACE/." || fail "Failed to copy profile"
cp -v "$DSYM_FILE" "$WORKSPACE/." || fail "Failed to copy dSYM"
section_print "Build succeeded"
#creating manifest.plist file to download ipa file
if [ -d "$WORKSPACE/$JOB_NAME" ]; then
rm -r $WORKSPACE/$JOB_NAME
fi
mkdir $WORKSPACE/$JOB_NAME
cp $WORKSPACE/icon.png $WORKSPACE/$JOB_NAME/Icon-57.png
cp $WORKSPACE/icon@2x.png $WORKSPACE/$JOB_NAME/Icon-512.png
TARGET_NAME=$APP_NAME
info_plist=$(ls $WORKSPACE/*/*-Info.plist)
bundle_version=$(defaults read $info_plist CFBundleShortVersionString)
bundle_id=$(defaults read $info_plist CFBundleIdentifier)
cat << EOF > $WORKSPACE/manifest2.plist
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0" mimeType="application/xml">
<dict>
<key>items</key>
<array>
<dict>
<key>assets</key>
<array>
<dict>
<key>kind</key>
<string>software-package</string>
<key>url</key>
<string>http://192.168.0.237:8080/job/$JOB_NAME/ws/$IPA_FILE</string>
</dict>
<dict>
<key>kind</key>
<string>display-image</string>
<key>needs-shine</key>
<true/>
<key>url</key>
<string>$WORKSPACE/$JOB_NAME/Icon-57.png</string>
</dict>
<dict>
<key>kind</key>
<string>full-size-image</string>
<key>needs-shine</key>
<true/>
<key>url</key>
<string>$WORKSPACE/$JOB_NAME/Icon-512.png</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>$bundle_id</string>
<key>bundle-version</key>
<string>$bundle_version #$BUILD_NUMBER</string>
<key>kind</key>
<string>software</string>
<key>title</key>
<string>$APP_NAME</string>
</dict>
</dict>
</array>
</dict>
</plist>
EOF
【问题讨论】:
【参考方案1】:添加代码以在 shell 脚本中创建 html 文件
cat << EOF > $WORKSPACE/download.html
<html>
<body>
<h1>Download IPA Here</h1>
<a href="itms-services://?action=download-manifest&url=http://192.168.0.237:8080/job/$JOB_NAME/ws/manifest2.plist" mimeType="application/octet-stream">
<b>Install App</b>
</a>
</body>
</html>
EOF
以及发布动作的一些更改显示工件上的下载文件。
【讨论】:
以上是关于文件如何生成下载链接?的主要内容,如果未能解决你的问题,请参考以下文章