阿里云上传下载API接口使用,及EF的使用
来源:互联网 发布:恋恋有词软件 编辑:程序博客网 时间:2024/06/04 11:01
相关资料地址:https://help.aliyun.com/document_detail/oss/sdk/dotnet-sdk/install.html?spm=5176.docoss/sdk/dotnet-sdk/preface.6.357.SHx0qW
1.在开始编程前需要引用Aliyun.OSS.dll,可以直接在阿里官网下载,也可以通过NuGet安装。
2.在阿里的官方网站上,对于上传和下载都有简单的示例代码。
3.通过普通的PutObject方法上传的文件最大不能超过5GB,不然报错,通过Multipart分片上传的
大小不能超过48.8TB,几乎没有限制。
4.Multipart分片上传也可以支持断点上传。
断点分片异步上传的实现:
基本的实现方式官网都有,下面是自己需要注意或修改的一点东西
在分片上传时,需要首先创建InitiateMultipartUploadRequest实例对象,然后使用InitiateMultipartUpload方法,得到一个UploadId,这个Id是一个在阿里中长期存在的Id,对应着每次的分片上传事件,除非在上传完成后调用完成分片上传方法client.CompleteMultipartUpload或者调用取消分片上传方法AbortMultipartUpload,这个Id才会消失。所以,我们可以通过client.ListMultipartUploads方法得到空间上所有的未完成的分片上传事件,然后通过key获得上次上传对应的UploadId,之后在根据已获得的UploadId调用client.ListParts方法,就可以获得上次上传的片信息了,得到的是一个Part的集合,Part中有一个PartNumber属性,这是上一次分片上传成功的片是第PartNumber份,可以用于跳过已上传成功的内容,还有一个ETag是用于校验的。最终是使用client.BeginUploadPart进行异步上传到阿里云端。还有一点要说明的是,当我们获取到上次上传成功的Parts后记得要把这些片加入到本次的partETags集合中,不然将不是断点上传,而是将整个文件大小加到了上次上传的文件大小中。
4.下载的话官网也是都有示例的,调用GetObject方法就好。
断点下载和断点分片下载的实现:
这两个功能都是通过官网分片下载的示例所修改的。
断点下载:只是将下载文件分为两片,下载完成片和未下载片。之后不说了。
断点分片下载:这个可以获得下载进度,实现进度条。就是将未下载的片经行分片下载,并追加到本地已下载的文件后面。
--Entity Framework(EF)的使用:从代码类到数据库
1.安装Entity Framework
在NuGet中搜索Entity Framework,进行安装。
2.定义实体类
给属性加上一些特定的描述如[Key],在数据库中就是主键,[Required],在数据库中就是必填。
3.定义数据库连接对象类,要继承DbContext类
这个类就是代表着一个数据库,而类中的属性就代表着数据库中的表
class UserDB : DbContext
{
public DbSet<User> Users { get; set; }
public DbSet<UserGroup> UserGroup { get; set; }
}
4.在配置文件中添加数据库的配置节点
<!--EF建立数据库-->
<connectionStrings>
<add name="UserDB" providerName="System.Data.SqlClient" connectionString="Server=.;DataBase=XinEFTest;Trusted_Connection=true;" />
</connectionStrings>
5.开始创建库
UserDB db = new UserDB();// 创建库,此时的db就是数据库中的库
var ug = new UserGroup()// 创建记录
{
ID = 1,
GroupName = "Admin"
};
db.UserGroup.Add(ug);// 向表中添加记录
db.SaveChanges();// 保存更爱
--从数据库到代码类
在新建项中选择数据-ADO.NET实体数据模型-来自数据库的EF设计器(VS2015是这个)-一直下一步,选择数据库中需要的对象,如表,视图等,然后类就生成好了。
在Dal层使用EF访问数据库时,需要先引用EF,不然报错
”using 语句中使用的类型必须可隐式转换为“System.IDisposable”在需要分页时,可以使用已经封装的方法,skip()和take(),且必须先使用order()方法排序,代码如:
public List<Boutique_Activity> GetActivityInfo(int activityType, int pageIndex, int pageSize, out int intTotalCount) { List<Boutique_Activity> listResult = new List<Boutique_Activity>(); using (BoutiqueActivityEntities activityEntityies = new BoutiqueActivityEntities()) { intTotalCount = activityEntityies.Boutique_Activity.Where(t => t.Study_Type == activityType).Count(); listResult = activityEntityies.Boutique_Activity.Where(t => t.Study_Type == activityType).OrderBy(t => t.Study_Date).Skip(pageSize * pageIndex).Take(pageSize).ToList(); } return listResult; }其中BoutiqueActivityEntities是根据EF生成的:
namespace WeiXinH5Models{ using System; using System.Data.Entity; using System.Data.Entity.Infrastructure; public partial class BoutiqueActivityEntities : DbContext { public BoutiqueActivityEntities() : base("name=BoutiqueActivityEntities") { } protected override void OnModelCreating(DbModelBuilder modelBuilder) { throw new UnintentionalCodeFirstException(); } public virtual DbSet<Boutique_Activity> Boutique_Activity { get; set; } }}
- 阿里云上传下载API接口使用,及EF的使用
- EF的基本使用及原理
- 第一篇:android使用阿里云的文件上传下载文件服务
- XPath API的使用 常用类及接口
- EF的使用建议
- tp使用阿里大于的短信接口
- JDBC简介,使用及API接口说明
- PHP开发API接口及使用
- 简单的使用API接口
- 阿里云-笑话Api使用教程
- 阿里云API教程:使用CLI便捷管理您的阿里云ECS资源
- 阿里接口平台--印刷字识别_身份证识别API接口phpdemo使用
- 使用阿里云旺遇到的问题及解决
- 使用阿里云服务器遇到的一些问题及解决办法
- 阿里云幸运券的使用规则及领用方法
- Oracle.ManagedDataAccess + EF的使用
- 阿里云代金券领取及使用
- 阿里云幸运券领取及使用
- 使用Ivy管理项目中的依赖
- 浅析GLib
- 梳理caffe代码blob(三)
- UVA 1347 Tour - 简单dp
- codeforces 614 A. Link/Cut Tree
- 阿里云上传下载API接口使用,及EF的使用
- Go语言学习(五)流程控制语句
- 重要技术博客记录
- CentOS 7 下安装 SVN (HTTPS + SSH)
- 极光推送Demo学习
- ……
- SonarQube代码质量管理平台安装与使用
- 错误:java.lang.UnsupportedClassVersionError: Bad version number in .class file
- Android访问服务器返回中文乱码