SharePoint 生产环境文件归档
前言
最近,用户提出数据库大小太大,所以,希望把文件归档。至于归档,该怎么做呢?
正文
我们提出的解决方案,占用数据库最主要的就是各种文档,那就按照时间为限制,超过一年的文档全部备份,由用户的IT自行保存到他们的存储中。
还好用户的数据规模不是特别的大,我们使用程序来处理也不会特别的耗时。
- 文档库
关于文档库处理起来比较容易,我们只需要用Windows 资源管理器视图,把文档先拷贝下来进行备份,然后再进行删除就可以了。
- 列表
列表处理起来,还是比较有难度的,我们需要把所有项目的列表附件都备份,然后进行删除。
我们这里讲的就是如何批量备份,至于删除,只需要稍稍改一下下面的脚本,就可以了。
[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint") #SharePoint variables
$SiteUrl = "http://siteurl"
$WebUrl = "weburl"
$LibraryName = "listname" #Save Path
$SavePath = "C:\ListBackup20200227" #Get SPSite
$site= New-Object Microsoft.SharePoint.SPSite($SiteUrl) #Get SPWeb
$Web = $site.OpenWeb($WebUrl) #Get SPList
$List = $Web.Lists[$LibraryName] #Loop SPListItem. If SPFolder, skip the item
foreach ($ListItem in $List.Items){
#Set SavePath
$SaveFolder = $SavePath + "\" + $ListItem.ID #Check if SavePath exists already. If not, create SavePath
if (!(Test-Path -path $SaveFolder)){
New-Item $SaveFolder -type directory
} #Get all SPAttachment
$AttachmentsColl = $ListItem.Attachments #Loop all SPAttachment
foreach ($Attachment in $AttachmentsColl){
#Get attachment
$file = $web.GetFile($listItem.Attachments.UrlPrefix + $Attachment)
$bytes = $file.OpenBinary() #Save attachment
$FilePath = $SaveFolder + " \" + $Attachment
$fs = new-object System.IO.FileStream($FilePath, "OpenOrCreate")
$fs.Write($bytes, 0 , $bytes.Length)
$fs.Close()
}
}
WHY PowerShell
对于业务并不复杂但是要求代码效率的操作,我们都倾向于使用SharePoint PowerShell 来进行操作,尤其是对于文档备份这样更像是IT运维的操作,我们更加推荐命令行。
这样的操作有什么优点呢?
- 操作简单明了,不需要进行太多的代码开发,没有复杂的业务;
- 我们保存下来,可以多次使用,比如这个备份,非常的灵活,修改也不需要重新编译;
- 类似CMD命令的方式,更容易让IT人员和非SharePoint 开发接受。
PowerShell 文件下载:https://github.com/linyus/BackupSPAttachment
SharePoint 生产环境文件归档的更多相关文章
- IP 解析器(IpParser) test 和 生产环境 实现
注意:之前我maven居然没有引入 StringUtils 的包,然后引入了一个路径类似,但其实包路径不一样的 StringUtils ,居然是划掉的状态,像这样 StringUtils ,这个其实不 ...
- 把Sharepoint Desinger 工作流部署到生产环境
下面是比较简单的方法,把Designer工作流从开发环境部署到生产环境. 在Sharepoint Desinger 2013 中点击需要部署的工作流. 点击保存,发布. 点Export to Visi ...
- [django]Django的css、image和js静态文件生产环境配置
前言:在Django中HTML文件如果采用外联的方式引入css,js文件或者image图片,一般采用<link rel="stylesheet" href="../ ...
- Jenkins实现生产环境部署文件的回滚操作(Windows)
由于dotnet项目的生产环境环境部署工具比较少,所以我使用jenkins作为生产环境的自动化部署工具. 既然有回滚操作,那么就会有部署操作:要实现回滚,先要实现部署的操作,我在jenkins搭建了一 ...
- SharePoint迁移数据到生产环境
SharePoint迁移数据到生产环境步骤如下: 1. 安装部署好生产环境 2. 配置管理中心 3. 安装SPD工具 4. 备份数据库(放在数据库服务器) 5. 备份wsp包(部署在管理中心服务器) ...
- Django_生产环境静态文件配置
需求: 当Django项目运行在线上的时候,需要关闭debug模式,那么Django设置中,静态文件路径配置将会失效,如何解决这个问题? 问题原因: Django默认关闭debug模式,Django错 ...
- 使用C#把Tensorflow训练的.pb文件用在生产环境
训练了很久的Tf模型,终于要到生产环境中去考研一番了.今天花费了一些时间去研究tf的模型如何在生产环境中去使用.大概整理了这些方法. 继续使用分步骤保存了的ckpt文件 这个貌似脱离不了tensorf ...
- spring boot实现不同生产环境下的文件配置
配置不同生产环境 本文适用于开发环境下需要打包项目至生产环境,避免开发环境的配置文件泄露. 设置maven 作用:1. 手动调节运行时的不同环境 2. 打包时可以不会有其它环境的文件 注:每次换环境前 ...
- 中小研发团队架构实践之生产环境诊断工具WinDbg
生产环境偶尔会出现一些异常问题,WinDbg或GDB是解决此类问题的利器.调试工具WinDbg如同医生的听诊器,是系统生病时做问题诊断的逆向分析工具,Dump文件类似于飞机的黑匣子,记录着生产环境程序 ...
随机推荐
- python 继承机制
继承机制经常用于创建和现有类功能类似的新类,又或是新类只需要在现有类基础上添加一些成员(属性和方法),但又不想将现有类代码复制给新类.也就是说,通过继承这种机制,可以实现类的重复使用. class S ...
- 在eclipse中用java调用python报错 Exception in thread "main" ImportError: Cannot import site module and its dependencies
最近做项目需要用java调用python,配置了jython后,运行了例子代码: 获得一个元组里面的元素: import org.python.util.PythonInterpreter; publ ...
- 【Oracle】分区表详解
此文从以下几个方面来整理关于分区表的概念及操作: 1.表空间及分区表的概念 2.表分区的具体作用 3.表分区的优缺点 4.表分区的几种类型及操作方法 5.对表分区的维护 ...
- Quartz cron 表达式(linux 定时器,java 定时任务,spring task定时任务)
原文地址:https://blog.csdn.net/feng27156/article/details/39293403 Quartz cron 表达式的格式十分类似于 UNIX cron 格式,但 ...
- (转) XSS Attacks – Exploiting XSS Filter
中文翻译: from wooyun'drops 0x00 前言 这又是一篇来自全职赏金猎人Masato kinugawa的神作.一次双杀,用一篇报告拿下了两个CVE,分别是CVE-2015-6144和 ...
- CQBZOJ 【重庆市NOIP模拟赛】避难向导
题目描述 "特大新闻,特大新闻!全国爆发了一种极其可怕的病毒,已经开始在各个城市 中传播开来!全国陷入了巨大的危机!大量居民陷入恐慌,想要逃到其它城市以 避难!经调查显示,该病毒来自于C 市 ...
- Python读取字典(Dictionary)内数据的方法
读取json后,数据类型为字典,对字典内数据的提取又有不同的方法,根据不同的字典类型 上图可以看到有”[]”,”{}” python语言最常见的括号有三种,分别是:小括号( ).中括号[ ]和大括号也 ...
- Nginx进阶
常见的web架构 LAMP - Linux +Apache +MySQL + PHP LNMP - Linux +Nginx + Mysql + PHP RHEL开源 Linux系统 RHEL C ...
- SVM(2)-模式识别课堂笔记
三.非线性支持向量机 问题起源:1.对于一些非线性可分的问题,我们希望能通过一个映射问题将特征映射到新的空间中去(可能是更高维的空间),寄希望于在新的空间中样本能够线性可分:2.我们注意到在线性支持向 ...
- Java 架构知识点整理
架构学习 1. Java 核心技术 1.1. 基础知识 1.1.1. 进制转换 1.1.2. 异常处理 1.1.3. List 分批代码 1.1.4. 字符串分割 1.1.5. 编码风格 1.2. 并 ...