qiniu / csharp-sdk Goto Github PK
View Code? Open in Web Editor NEWQiniu Resource (Cloud) Storage SDK for C#
License: MIT License
Qiniu Resource (Cloud) Storage SDK for C#
License: MIT License
新增单元测试(NUnit)
修复FormUploader中的UploadData和UploadStream的细节问题(问题描述:saveKey或者localFile包含中文时会出现错误)
Hi:
7.2.x版本中使用FormUploader.UploadFileAsync()上传文件失败,错误信息:{"error":"file is not specified in multipart"}
但是FormUploader.UploadDataAsync()方法没有问题,望尽快修复。代码请见
还是之前的那个issue中提到的,希望尽快添加单元测试
另外很高兴看到了7.2.7添加了对uwp支持(我终于不用改了),但是还是有个小小的建议,能否把函数名改一改,已经改了一大部分了,加油!!!
视频是已有的视频。
代码里面没有解释如何对一个 block 进行多个 chunk 进行分片上传的步骤,这个对一些网络不好以及移动端的复杂网络情况 分 chunk 进行上传是很重要的,请问这部分代码有计划提供么?
上传文件过程中,内存无法释放,一直增长。上传1.5G左右的文件,内存也会一直上涨到1.5G,造成崩溃!!
if (OK && string.IsNullOrEmpty (Response)) {
IsNullOrEmpty的逻辑判定错了,造成属性均未赋值
你们的代码写完后运行过没有?SimpleUploader.uploadStream方法里构建报文格式都不正确,一调用就返回400错误。另外PutPolicy里Deadline是可以set的,但又同时提供了setExpires,你们打算让开发者怎么用?
建议你们写c#的时候用心一点,起码得使用c#的命名规范。
nuget包改成Qiniu.Shared了?
看doc里面都是提前设置好bucket,如果bucket很多的情况还要在网页中打开慢慢找,能否利用SDK获取所有bucket的列表?
比如
{ "is_public": 1,
"key_prefix": "2013-8-14-",
"debug_level": 1
}
求代码。感觉和java版的差别好大。
多文件压缩方法 Qiniu.PFOP.Mkzip.doMkzip
目前不支持传入 alias:
https://github.com/qiniu/csharp-sdk/blob/develop/Qiniu/PFOP/Mkzip.cs#L30
这个方法可以接收一个 alias 数组,或是把 urls 换成 Dictionary.
目前想到两个方式:
接收一个 alias 数组
public String doMkzip(String bucket, String existKey, String newFileName, String[] urls, string pipeline, String[] aliases = null)
urls 类型改成 Dictionary, key 为 url, value 为 alias
public String doMkzip(String bucket, String existKey, String newFileName, Dictionary<string,string> urls, string pipeline)`
目前主要使用的场景是文件存储路径包括分级文件夹,压缩时需要把路径展平,所以比较需要别名功能。
关于nuget包的两点问题:
1、最新的6.1.7.1中,再次将dll忘记打包,之前一个6.1.7中是有dll的。希望负责打包的同事能够细心点,这个问题已经不是一次了。
2、6.1.7中虽然包含了dll,但是有一个很大的问题,关于依赖项Newtonsoft.Json.dll的问题,看来打包的同事根本没有理解nuget运作的方式,nuget打包的时候,可以设置依赖项,Newtonsoft.Json.dll本身在nuget也有包,应当设置其为依赖项,而无需将该dll打包进Qiniu的nuget包里,更重要的是,你们打包的Newtonsoft.Json.dll还不是最新版本的,会将项目中原有的Newtonsoft.Json.dll版本给强制变成低版本的。另外,目前打包的目录结构也不太科学,将Qiniu.4.0.dll放在NET20的目录下,NET20的目录中本应放Qiniu.2.0.dll,而Qiniu.4.0.dll应该放在NET40的目录下,这样才符合规范。
希望就以上两点问题,能够帮忙转达给负责nuget打包的同事,谢谢!
我对七牛寄予很大的期望,希望在nuget包方面能够更专业一点!谢谢!
putPolicy.Scope = Settings.Bucket;
这句编译不了。
新增LabMD5(MD5Hash的一个独立实现方法,用于解决FIPS问题)
修复UnixTimestamp计算问题,此问题在 issue152 有所反映。
新建空web mvc项目,通过nuget引用qiniu,运行就报错
未能加载文件或程序集“Qiniu”或它的某一个依赖项。试图加载格式不正确的程序。
UploadManager.cs 文件里面 分片上传的时候因获取目录为空导致报错
原
string home = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
改成如下就好了
string home = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);
当前更新文件生命周期的方法如下:
updateLifecycle(bucket, key, deleteAfterDays)
如果想批量更新多个文件的生命周期,只能在循环中去调用该方法(因为担心服务器响应的问题,还得采用 Thread.Sleep、异步多线程或 Parallel 并行的方式),这样做其实不太科学,本来一般来说,Update 操作都支持单个或多个的。
所以,建议是否可以考虑增加批量更新的功能?
比如:允许第二个参数是泛型列表 List<string>、数组 string[]、或者用特殊符号分隔多个 key 的字符串、……等方式。
@fengyhack 已经看到了最新版本的SDK,望重构成 C#编程风格 。 O(∩_∩)O谢谢
RT,看DEMO都是上传本地已有的图片到七牛的。
使用VS2017打开项目,自动项目下所有文件,不是之前的选择包含或者不包含部分文件了
Nuget上面的package,直接包含了一个Newtonsoft.JSON.dll,导致已经通过Nuget安装了Newtonsoft.JSON的引用会被覆盖(降级),产生版本冲突。第三方的dll只需要依赖就会自动安装的。
错误原因:
multipart/form-data数据中文件部分FILE_NAME包含中文
Content-Disposition: form-data; name=file; filename=FILE_NAME
目前新版的 C# SDK 只能通过 list 接口获取 空间文件的列表,
sdk没有提供该方法来实现该功能,
应该是还没写,建议补充一下。
1.七牛C#SDK的DeleteAfterDays参数如何使用;
2.put = new PutPolicy(bucket, 3600); put.DeleteAfterDays = 1;
3.我设置了DeleteAfterDays = 1,按我理解通过这个Token上传的文件会在一天后自动删除,然而并没有;
4.我发现加不加DeleteAfterDays这个参数,对于生成的Token并没有什么变化。
使用的是最新的版本 直接从github下载的
因为我在做 Qiniu.uwp,从7.2.x版本开始改用了HttpClient很好,但是为啥单元测试没有了,是还没来得及写吗?
没有单元测试改起来很不方便啊!
RT。6.1.4版的nuget包里,并没有dll。请检查下。
在七牛官方的 SDK 中的 JSON 解析上,选用了 Json.NET。
个人建议:将 JSON 的解析器开放出来,让开发者自行选择。
性能比 Json.NET 好的有几个,什么 Jil、ServiceStack.Text、……
甚至,不用 JSON 格式,直接用 Google 的 ProtoBuf(官方版本、C# 版本)或 Apache(Facebook)的 Thrift 进行,也可以。
因为毕竟这里只是一个传参,性能越快越好。
如果一定要用 JSON,建议把解析器开放出来。这样,在我们的项目中,不用单单为了使用七牛的 SDK 而去添加 Json.NET 的引用。
建议在HttpManager中增加"用户主动取消"的支持。
一个可能的方式是,在HttpManager中新增CancelEventHandler
举个例子,在调用HttpManager的POST方法发送数据过程中,用户需要立即暂停或者中止当前的HTTP请求,这时可以发送CancelEvent让SDK主动中止当前POST行为(比如调用WebRequest.Abort方法)
var client = new Qiniu.RSF.RSFClient("xxx");
client.BuckName; // 返回null
构建函数中的buckName参数没有正确赋值给BuckName属性
因为Json.net最新版本不太兼容wince 6.0, (实际上差不多兼容的要到3.5r8版本了)
所以SDK在Mac mac = new mac(ak,sk)的时候就报错了, 源码大概看了下,应该就是因为几个override的toString地方出的错.
暂时打算自己重写相关的JSON函数. 因为没有通读代码,所以想先问一下,SDK本身是否支持WINCE设备?
CE6仅有.net cf 2和.net cf 3.5.
时间不是很多,怕是只能做一些json的更改了,害怕到时候SDK本身也有什么问题.
下载下来的Packages包里面,有个nuget.exe文件,导致我们在做ci发版的时候,用了此nuget.exe来查找程序集,但是很多程序集就查找不到,导致自动发版失败!请问这个文件作用是什么,可以删除?
环境:win10 .net v4.0 编译,运行在08R2上
版本:git clone代码,新鲜编译出来的
错误:生成的下载链接报错{"error":"download token auth failed"}
详细:签名出来的链接如下 http://img.cnhsjz.com/54596E4D2218.zip?e=1487917419&token=xxxxxxxxxx:URQMxUrMu_ykqUbLjxKH35-xqeA=
生成代码:如下图
提过工单,但是人家签名出来就可以,附上可用的url
http://xxx.cnhsjz.com/54596E4D2218.zip?e=1582519015&token=xxxxxxxxxxx:CCPWWXPKBA5Zv8JqsiQJpVpYugc=
一般情况下,C#代码都是在Windows下开发的,文件行尾也应该是WIndows的行尾,但是RSClient这个文件,查了下历史,在今年2月18日,icattlecoder在support NET2.0, NET3.5, NET4.0这次提交中,将该文件的行尾全部改成了Unix的。这将对今后该文件的修改造成麻烦,比如之前williambao的关于添加Fetch功能的pull request,你们就说到“请您不要变动代码风格,这样review 会很麻烦。”以及“能否保留之前的格式?这样避免review出现差错,我们会非常感激”。而这其实是由于该文件之前的行尾是有问题的。所以希望你们能够重新审查下该文件,并对以后的操作进行规范,尽量使用Windows进行编辑。
Hello , when ı qiniu login with github ı get this error : [7336] 第三方账号认证失败
从7.0开始就非常难用,特别是 uploadFile
竟然只提供一种回调的方式,好累呀。也许是我智商问题。总感觉写.NET SDK的人,是NODEJS过来的。
有没有人有同感?
最后我还是回到了6.x了。
从目前的的代码来看,虽然服务器返回了上传的https接口,但是sdk中限制了,请问近期可有支持https上传的打算
错误:VS中用Nuget获取到的是7.0.0版,且命名空间和项目中的7.2相差很大,建议在Nuget中更新一一上
建议:不管是项目中最新的 还是从VS中获取到的,都没有注释,虽然有网页版的注释,但是没有在代码中调用时就能看到的舒服呀,查看网页版的文档毕竟慢点,建议改进一下,添加注释的xml文件
如题
Zone的配置现在是单例的,这样限制太大了,希望后续能够针对Uploader提供Zone的配置,如果调用者有指定则采用指定Zone,没有采用全局配置。这样会比较灵活一些
HttpManager类getUserAgent方法中Environment.MachineName可能获取无效字符,导致错误
虽然隔壁7.1已经在开发中了,发布下7.0.0.5也不会耽误多少时间
6.1.7.1的nuget包未包含dll文件
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.