Windows备份文件到阿里云OSS

最近在维护之前的一个项目,涉及到一些用户上传的图片。由于是企业应用,图片直接保存在了服务器本地,并未使用相关的图片存储服务。而且服务器也没做什么靠谱的备份方案,感觉不是很放心,想把用户上传的相关文件定期保存到阿里云的OSS。搜索了一下发现有一个基于Python的脚本,大致是使用osscmd这个工具,定期打包文件上传到服务器,并删除过期文件。看了一下要在服务器上安装Python,配置一下相关key。Python不是很懂,看了一下相关的SDK,比较简单,打算用.NET 造个轮子。
首先参考阿里云OSS .NET SDK 创建 AccessKeyId和 AccessKeySecret,再次软件的主要实现以下功能。
1.设置备份目录打包文件并上传到阿里云,支持断点续传。
2.由于OSS 存储空间有限,需要删除过期备份文件。
3.配合Windows计划任务,设置自动备份任务。

待完善功能:
使用Server酱发送备份消息到微信,但是想到备份任务都是在半夜执行,半夜突然收到一条微信提醒感觉不是很友好,所以就暂时没添加相关通知功能。或许可以考虑添加一个邮件通知。

工具下载 AliyunOSSBackUp

使用说明
1.解压文件夹
2.使用编辑器打开 AliyunOSSBackUp.exe.config 文件
3.根据说明修改配置信息
4.需要 .NETFramework,Version=v4.7.2

相关源代码参考 GitHub

Visual Studio 2017 连接Azure设置

由于众所周知的原因导致微软的Azure平台分为Global Azure和由世纪互联运营的中国区 Azure,并且数据互不相通。目前Global Azure已经可以用国内的电话号码验证。准备一张Visa或者Master信用卡就可以愉快的使用了。今天在切换国区账号和全球账号遇到一些坑,整理记录一下。

使用 Visual Studio 2017,连接中国区 Azure

新建一个 JSON 文件 AadProvider.Configuration.json,文件内容如下

{
"AuthenticationQueryParameters": null,
"AsmEndPoint": "https://management.core.chinacloudapi.cn",
"Authority": "https://login.chinacloudapi.cn/",
"AzureResourceManagementEndpoint": "https://management.chinacloudapi.cn/",
"AzureResourceManagementAudienceEndpoints": [ "https://management.core.chinacloudapi.cn/" ],
"ClientIdentifier": "872cd9fa-d31f-45e0-9eab-6e460a02d1f1",
"EnvironmentName": "Mooncake",
"GraphEndpoint": "https://graph.chinacloudapi.cn",
"MsaHomeTenantId": "f577cd82-810c-43f9-a1f6-0cc532871050",
"NativeClientRedirect": "urn:ietf:wg:oauth:2.0:oob",
"PortalEndpoint": "http://manage.windowsazure.cn",
"ResourceEndpoint": "https://management.core.chinacloudapi.cn/",
"ValidateAuthority": true,
"VisualStudioOnlineEndpoint": "https://app.vssps.visualstudio.com/",
"VisualStudioOnlineAudience": "499b84ac-1321-427f-aa17-267ca6975798"
}
  1. 确保已登出并关闭 Visual Studio。
  2. 删除 %temp%\servicehub 文件夹(详细路径为 C:\Users%USERPROFILE%\AppData\Local\Temp\servicehub)。
  3. 把前面新建的 JSON 文件 (AadProvider.Configuration.json) 拷贝到 %localappdata%.IdentityService\AadConfigurations(详细路径为 C:\Users%USERPROFILE%\AppData\Local.IdentityService\AadConfigurations, AadConfigurations 文件夹可能不存在,需要手动创建)。
  4. 重启 VS 并添加中国 Azure 账户即可。

使用 Visual Studio 2017,连接Global Azure

  1. 确保已登出并关闭 Visual Studio。
  2. 删除文件夹。%localappdata%.IdentityService\AadConfigurations
  3. 重启 VS 即可连接 Global Azure。

切换Global Azure方法为官方解决方案,但实际操作过程中,会导致Visual Studio 登录账号失败,要求重复验证,无法切换。正确做法如下。

  1. 确保已登出并关闭 Visual Studio。
  2. 删除文件夹。%localappdata%.IdentityService\内的所有文件
  3. 打开全局代理(非必需 网络不稳定情况下使用)
  4. 重启VS即可重新连接 Global Azure

未能加载文件或程序集XXX或它的某一个依赖项。试图加载格式不正确的程序。

未能加载文件或程序集“xxx, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。试图加载格式不正确的程序。


原因:操作系统是64位的,但发布的程序引用了一些32位的ddl,所以出现了兼容性的问题
解决方案一:如果是64位机器,IIS——应用程序池——高级设置——启用32位应用程序 :True
解决方案二:修改项目属性——生成——目标平台(比如,X86\X64)

IIS 8 HTTP重定向到HTTPS

今天在试着在IIS8.0上设置HTTPS,按照教程添加完成以后可以正常使用HTTPS服务,但是在设置HTTP重定向到HTTPS上的时候遇到了些问题,现在把问题解决过程记录一下。

  • 首先在IIS中安装了URL重写模块。这是32位版本64位版本的下载。安装完成以后重新开打IIS 就可以看到”URL Rewrite” 图

  • 在IIS中选择网站,然后单击功能窗格中的“URL重写”选项。URL重写页面打开以后单击右侧窗格中的“添加规则…”链接,选择空白规则点击确定,输入名称。

  • Match URL 部分 :
    • 设置 Requested URL 为 Matches the Pattern.
    • 设置 Using 为 Regular Expression
    • 设置 Pattern 为 (.*)

  • Conditions 部分. 点击 添加
    • 设置Condition Input{HTTPS}
    • 设置Check if Input String 为 Matches the Pattern
    • 设置Pattern 为 ^OFF$
    • 点击 确定

  • Actions 部分
    • 设置 Action Type Redirect
    • 设置 Redirect URL https://{HTTP_HOST}/{R:1}
    • 设置 Redirect Type Permanent(301)
    • 点击应用

现在所有的请求都会被301重定向到HTTPS

 

IIS 配置文件