javaoss
‘壹’ java 怎样把 ckfinder 整合 oss
出现问题的原因是java代码中获取的中文字符串没有定义编码格式,读取的时候是乱码,所以显示不出来。
获取到的文件中通常都是“iso8859-1”格式,需要转换为“UTF-8”格式。
如:String str = new String(str.getByte("iso8859-1"),"UTF-8");进行下强制转换后在进行读取即可。
通常格式有GBK、UTf-8、iso8859-1、GB2312,如果上面的强制转换不成功,依次进行这些格式的尝试,肯定是可以解决问题的。
‘贰’ 求助,OSS的JAVA上传出错,以前没有出现错误
主要是由于没有指定endpoint这个参数导致的 !
OSS服务目前分杭州跟青岛节点,两个节点都有自己的独立请求地址,如果bucket创建在青岛节点上,默认使用oss.aliyuncs.com地址去请求,就会报以上错误,所以在操作之前要确认endpoint里面的请求地址跟bucket是否都一致,如果需要青岛跟杭州两个节点的bucket都需要请求,那就需要建多个osscleint,定义endpoint的时候,需要将青岛跟杭州节点的地址都添加进去,详细的可以查看SDK demo!
‘叁’ ECS上JavaSDK访问OSS总是超时怎么解决
ECS上JavaSDK访问OSS总是超时怎么解决假如你的json是这样的格式:varjson={‘key_1’:123,'key_2':234,'key_3':567};那么你可以用循环的方式拿到:for(variinjson){alert("key="+i)}如果是用java处理json的话,那么先转换成JSONObject对象:Stringstring="{key_1:123,key_2:234,key_3:567}";JSONObjectjson=JSONObject.fromObject(string);Setset=json.keySet();for(Stringkey:set){System.out.println("key=="+key);}
‘肆’ 阿里云OSS的java实现生成url签名的代码示例吗
生成签名以后的URL的示例代码如下:
// Generate a presigned URL
Date expires = new Date (new Date().getTime() + 1000 * 60); // 1 minute to expire
GeneratePresignedUrlRequest generatePresignedUrlRequest =
new GeneratePresignedUrlRequest(bucketName, key);
generatePresignedUrlRequest.setExpiration(expires);
URL url = client.generatePresignedUrl(generatePresignedUrlRequest);
System.out.println(url.toString());
这段代码假定指定bucketName和key的Object已经上传到OSS,用户可以根据修改设定expires,即过期时间。更详细的操作可以参考OSSClient#generatePresignedUrl方法和GeneratePresignedUrlRequest类的帮助。
‘伍’ 什么命令是java语言的解释器
Java解释器可用来直接解释执行Java字节代码,具体命令行格式如下:
C:\>java options className
argumentsclassName必须包括所有软件包信息。不仅有类名本身,还有Java 解释器所期望的类名(不是Java字节代码的文件名),所有在解释器环境下运行的类都必须包括解释器第一次调用时所需的main成员函数,用以传递命令所带的变量。public static void main(string args[]){ ......}
下面Java解释器的所有选项。-cs -checksource 此选项让解释器重编译Java源文件已更新的类--重编译已改变过了的类。-classpath path 此选项重写CLASSPATH环境变量,告诉Java在哪里能找到类库。如果其中用冒号分开,则可能包含多个目录。 -mx x 此选项设置内存分配池的最大值。所指定的池必须大于1,000字节。
另外“K”,“M”可附加在数字上指定是千字节还是兆字节。缺省值是16MB。 -ms x 此选项设置内存分配池的最小值。所指寂的池必须大于1,000字节。
另外,“K”,“M”可加在数字上指定的是千字节还是兆字节。缺省值是1MB。-noasyncgc 此选项关闭异步无用单元收集功能,只有在程序中调用它或内存溢出的时候,无用单元收集才会被激活。
-ss x 此选项将C线程栈的最大值设置为x , x 必须大于1KB,其设定方式同 -ms。 -oss x 此选项设定Java堆栈最大值为x。
-v,-verbose 此选项告知Java每当类被调用之时, 向标准输出设备输出信息。 -verify 此选项告知Java在所有代码上使用校验。-verifyremote 此选项告知Java 仅仅对类载入器所载入的类进行校验。-noverify 此选项告知Java不进行校验。 -verbosegc 此选项告知Java让无用单元收集器在它释放内存时显示一条信息。 -t 此选项在Java-g解释器中是可用的,并把执行的情况逐条打印出来。 -debug 此选项允许Java调试器与本次Java 解释器会话相联接。它运行时,Java会显示一个密码,用于启动这次调试会话
-D propName=newVal 此选项允许用户在运行时改变属性值
‘陆’ Java上传图片到OSS怎么添加水印
首先,图片上的水印图片只能使用当前存储空间内的图片,如果没有,需要先传到当前空间内。
其次,水印图片的格式仅支持png,jpg,webp三种。
java里面上传水印,可以使用提供的sdk里面的watermark方法,这个函数有5个参数,分别是t,g,x,y,voffset.其中第一个参数表示透明度,其它参数表示位置。
当然了,它还可以指定水印文字,具体可以参考阿里云官方提供的文档,代码示例可以去github上找到对应操作的代码。
具体代码如下
// add watermark into the image
style = "image/watermark,text_SGVsbG8g5Zu-54mH5pyN5YqhIQ";
request = new GetObjectRequest(bucketName, key);
request.setProcess(style);
‘柒’ 通过java如何获取到上传阿里云OSS的文件的下图的下载文件地址,
具体的可以查看这篇文章:网页链接
public static String uploadFile(File file){
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String dateStr = format.format(new Date());
if(null == file){
return null;
}
OSSClient ossClient = new OSSClient(endpoint_im,accessKeyId_im,accessKeySecret_im);
try {
//容器不存在,就创建
if(! ossClient.doesBucketExist(bucket_im)){
ossClient.createBucket(bucket_im);
CreateBucketRequest createBucketRequest = new CreateBucketRequest(bucket_im);
createBucketRequest.setCannedACL(CannedAccessControlList.Default);
ossClient.createBucket(createBucketRequest);
}
//创建文件路径
String fileUrl = dateStr + "/" + new Date().getTime()+"."+fileType;
//上传文件
PutObjectResult result = ossClient.putObject(new PutObjectRequest(bucket_im, fileUrl, file));
//设置权限 这里是私有权限读写
// ossClient.setBucketAcl(bucketName,CannedAccessControlList.Default);
if(null != result){
return fileBucketprefix+"/"+fileUrl;
}
}catch (OSSException oe){
logger.error(oe.getMessage());
}catch (ClientException ce){
logger.error(ce.getMessage());
}finally {
//关闭
ossClient.shutdown();
}
return null;
}
‘捌’ 怎么用javaweb上传文件到阿里云OSS
前段时间正好做个项目,就是用的oss,普通上传和断点续传,代码贴出来,看是不是你需要的
publicclassOssManage{
publicstaticStringACCESS_KEY_ID=null;
publicstaticStringACCESS_KEY_SECRET=null;
publicstaticStringENDPOINT=null;
publicstaticStringBUCKETNAME=null;
publicstaticStringBUCKETNAME_VIDEO=null;
publicstaticStringOUT_OF_DATE=null;
privateOSSClientclient=null;
privateObjectMetadatameta=null;
static{
try{
ACCESS_KEY_ID=SysConst.getProperty("OSS_ACCESS_KEY_ID");
ACCESS_KEY_SECRET=SysConst.getProperty("OSS_ACCESS_KEY_SECRET");
ENDPOINT=SysConst.getProperty("OSS_ENDPOINT");
BUCKETNAME=SysConst.getProperty("OSS_BUCKETNAME");
BUCKETNAME_VIDEO=SysConst.getProperty("OSS_BUCKETNAME_VIDEO");
OUT_OF_DATE=SysConst.getProperty("OSS_OUT_OF_DATE");
}catch(java.lang.Exceptione){
e.printStackTrace();
}
}
publicvoidinit(){
//初始化一个OSSClient
client=newOSSClient(ENDPOINT,ACCESS_KEY_ID,ACCESS_KEY_SECRET);
meta=newObjectMetadata();
}
/**
*@Description:上传文件到OSS文件服务器
*@paramcontent文件流
*@paramkey上传为OSS文件服务器的唯一标识
*@parammimeType文档类型
*@throwsException
*@ReturnType:StringOSSObject的ETag值。
*/
publicStringuploadFile(InputStreamcontent,Stringkey,StringmimeType)throwsException{
//进行初始化
init();
//必须设置ContentLength
meta.setContentType(mimeType);
//上传Object.
LogUtil.printConsoleLog("*****************上传图片到oss服务器开始*****************"+key);
PutObjectResultresult=client.putObject(BUCKETNAME,key,content,meta);
LogUtil.printConsoleLog("*****************上传图片到oss服务器结束*****************"+key);
returnresult.getETag();
}
/**
*@Description:根据key获取oss服务器上的图片地址
*@paramkey
*@return
*@ReturnType:String
*/
publicStringgetImgURl(Stringkey){
init();
Dateexpires=newDate(newDate().getTime()+Integer.parseInt(OUT_OF_DATE));//30minutetoexpire
;
if(key.startsWith("msplatform")){
generatePresignedUrlRequest=(BUCKETNAME,key);
}else{
generatePresignedUrlRequest=(BUCKETNAME_VIDEO,key);
}
generatePresignedUrlRequest.setExpiration(expires);
URLurl=client.generatePresignedUrl(generatePresignedUrlRequest);
returnurl.toString();
}
/**
*@Description:根据key获取oss服务器上的ipa文件地址
*@paramkey
*@return
*@ReturnType:String
*/
publicStringgetIpaURl(Stringkey){
init();
Dateexpires=newDate(newDate().getTime()+10*365*24*3600*1000);
;
if(key.startsWith("msplatform")){
generatePresignedUrlRequest=(BUCKETNAME,key);
}else{
generatePresignedUrlRequest=(BUCKETNAME_VIDEO,key);
}
generatePresignedUrlRequest.setExpiration(expires);
URLurl=client.generatePresignedUrl(generatePresignedUrlRequest);
returnurl.toString();
}
/**
*@Description:根据key获取oss服务器上的图片地址
*@paramkey
*@return
*@ReturnType:String
*/
publicInputStreamgetObject(Stringkey){
init();
OSSObjectobject=null;
if(key.startsWith("msplatform")){
object=client.getObject(BUCKETNAME,key);
}else{
object=client.getObject(BUCKETNAME_VIDEO,key);
}
object.getObjectMetadata().getContentType();
//获取Object的输入流
InputStreamobjectContent=object.getObjectContent();
returnobjectContent;
}
/**
*@Description:删除文件
*@paramkeyOSS文件服务器上文件的唯一标识
*@ReturnType:void
*/
publicvoiddeleteFile(Stringkey){
init();
client.deleteObject(BUCKETNAME,key);
}
/**
*@Description:断点上传文件到OSS文件服务器
*@paramcontent文件流
*@paramkey上传为OSS文件服务器的唯一标识
*@paramposition位置
*/
publicStringappendObjectFile(InputStreamcontent,Stringkey,intposition,StringmimeType)throwsException{
//进行初始化
init();
//必须设置ContentLength
meta.setContentLength(position);
meta.setContentType(mimeType);
meta.setCacheControl("no-cache");
meta.setContentEncoding("utf-8");
//上传
LogUtil.printConsoleLog("*****************断点上传图片到oss服务器开始*****************"+key);
=newAppendObjectRequest(BUCKETNAME,key,content,meta);
appendObjectRequest.setPosition(Long.valueOf(position));
=client.appendObject(appendObjectRequest);
LogUtil.printConsoleLog("*****************断点上传图片到oss服务器结束*****************"+key);
returnappendObjectResult.getNextPosition().toString();
}
publicstaticvoidmain(String[]args){
OssManageossManage=newOssManage();
}
}