谁用七牛云设置水印成功了
3个回答
推荐于2017-07-23
展开全部
相信很多开发者会把图片存放到七牛上,我的web站点也是吧图片存储到七牛上,对于以图片为主的站点,这样可以节省很大带宽。将图片上传到七牛服务器的重点就是获得上传凭证uploadToken,直接把AccessKey和Secret放到客户端太不安全,容易被反编译。所以需要在服务器端根据AccessKey和Secret动态生成一个uploadToken,然后传回到客户端,客户端通过这个uploadToken将图片上传到七牛服务器。第一、在服务器端生成uploadToken//将图片上传到七牛start$bucket='七牛空间名称';$expires=3600;$accessKey='去七牛查看';$secretKey='去七牛查看';$client=newQiniuClient($accessKey,$secretKey);$flags=array();$scope=$bucket;$deadline=time()+$expires;$flags['scope']=$scope;$flags['deadline']=$deadline;$flags['returnBody']=null;echo$client->uploadToken($flags);这里注意一下bucket:七牛空间名称和deadline:uploadToken失效时间,具体可查看一下官网上传凭证介绍uploadToken($flags)是自己封装的用于生成上传凭证的函数publicfunctionuploadToken($flags){if(!isset($flags['deadline']))$flags['deadline']=3600+time();$encodedFlags=self::urlsafe_base64_encode(json_encode($flags));$sign=hash_hmac('sha1',$encodedFlags,$this->secretKey,true);$encodedSign=self::urlsafe_base64_encode($sign);$token=$this->accessKey.':'.$encodedSign.':'.$encodedFlags;return$token;}publicstaticfunctionurlsafe_base64_encode($str){$find=array("+","/");$replace=array("-","_");returnstr_replace($find,$replace,base64_encode($str));}第二、下载qiniu-android-sdk-7.0.0.jar和android-async-http-1.4.6并导入项目第三、android上传图片由于Android4.0以后不允许在主线程进行网络连接,所以需要新开个线程来获取上传凭证。/**上传图片到七牛*/privatevoiduploadImg(){newThread(newRunnable(){@Overridepublicvoidrun(){//获得七牛上传凭证uploadTokenStringtoken=getUploadToken();//手机SD卡图片存放路径StringimgPath="";try{imgPath=FileUtil.getBasePath()+"/test.jpg";}catch(IOExceptione){e.printStackTrace();}if(token!=null){Stringdata=imgPath;//图片名称为当前日期+随机数生成Stringkey=getRandomFileName();UploadManageruploadManager=newUploadManager();uploadManager.put(data,key,token,newUpCompletionHandler(){@Overridepublicvoidcomplete(Stringarg0,ResponseInfoinfo,JSONObjectresponse){//TODOAuto-generatedmethodstubLog.i("qiniu",info.toString());}},null);}else{Log.i("fail","上传失败");}}}).start();}FileUtil.getBasePath()使用来获取SD卡基本路径,getRandomFileName()生成一个随机数来命名上传图片,具体方法我在这就不写了。获得上传凭证的方法也很简单,直接使用httpget和服务器通信,获得第一步中生成的数据即可。(注意10.0.2.2是模拟器提供的特殊IP,等同于在电脑端的环回测试IP127.0.0.1)/**获得七牛上传凭证uploadtoken*/privateStringgetUploadToken(){HttpClientclient=newDefaultHttpClient();StringBuilderbuilder=newStringBuilder();HttpGetmyget=newHttpGet("10.0.0.2/test/getUploadToken.php");try{HttpResponseresponse=client.execute(myget);BufferedReaderreader=newBufferedReader(newInputStreamReader(response.getEntity().getContent()));for(Strings=reader.readLine();s!=null;s=reader.readLine()){builder.append(s);}returnbuilder.toString();}catch(Exceptione){Log.i("urlresponse","false");e.printStackTrace();returnnull;}}通过LOG日志可以看到Qiniu--success,说明上传成功。
展开全部
对于小网站, 我推荐站在api是否好用, 功能是否丰富的角度来考虑, 毕竟一个月多几块少几块没有那么重要
对于大流量的用户,价格是首要考虑因数,其次是速度
大网站还需要考虑一个问题,因为是按照流量收费,如果你的竞争对手拼命下载你的cdn资源,那么服务方如何处理这个问题? 服务方是否有每日限量消费功能,是否有攻击防御,是否有赔付都是需要考虑的问题, 我们曾经遇到过3天左右被下载8000多G流量,结果服务方如何处理我还是不透露了~~~
对于大流量的用户,价格是首要考虑因数,其次是速度
大网站还需要考虑一个问题,因为是按照流量收费,如果你的竞争对手拼命下载你的cdn资源,那么服务方如何处理这个问题? 服务方是否有每日限量消费功能,是否有攻击防御,是否有赔付都是需要考虑的问题, 我们曾经遇到过3天左右被下载8000多G流量,结果服务方如何处理我还是不透露了~~~
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
七牛云设置水印其实很简单的,首先你要在七牛首页右上角登录七牛云储存,如果没账号的话就需要先注册一个并登录,进入七牛云储存后点击对应资源所在的空间进入,点击“数据处理”后再点击“新建图片样式”,进入页面你就可以设置相应的图片基本处理,如缩略、图片质量等,点击“水印”你就可以设置自己想要的水印样式,在所需的属性都设置好后,点击“确认创建”即可完成“图片样式”的创建,这样创建出来的图片上面就有你所需要的水印了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询