當前位置:首頁 » 文件管理 » oss上傳圖片java

oss上傳圖片java

發布時間: 2022-06-21 21:33:39

A. java 如何獲得文件上傳到oss的進度

上述四種方法的比較: 1、開發簡單,由於要定時起一個HTTP 連接去獲得進度信息,因此,發生的連接請求也增多 ,另外,在低速的情況下,常常會出各種各樣的BUG,網路環境的差異,還造成那個周期很 難選擇。 2、開發較復雜,COMET 本身需要伺服器的支持,這樣TOMCAT 至少得選6.0,否則伺服器長連 接,壓力肯定受不了,但是,性能相對好一些,由於一次上傳實際上只啟動了兩個HTTP 鏈接 請求,比起AJAX 來說,那是要少很多請求了。另外一個優點是,COMET 將使得伺服器可以主 動將進度情況匯報給客戶端,因此,客戶端的進度條相對來說,要准確一點。 3、目前看來解決方案最好的一個了,雖然開發需要涉及到 FLASH、JAVASCRIPT、以及 JAVA 的 開發,但是代碼量都不是很多,因此,復雜程度相對屬於中等程度。但是FLASH 也有幾個問 題:第一、瀏覽器 FLASH 版本兼容問題,第二、FLASH 是通過獲得發送數據的進度來體現進度 條的,因此雖然不需要伺服器端開發進度部分的代碼,但是進度的展現有些不是很准確,經 常會有一開始速度很快,但是後面越來越慢的情況。 4、就不說了,開發肯定是最麻煩的,但是進度條效果肯定是最好的,但要給每種瀏覽器都 要搞個插件,還是比較痛苦的。 總結一下,希望對大家有幫助。 2 其實很麻煩的,之前試過,會有下面幾個問題: 第一、伺服器端一定要選擇支持HTTP 長連接的伺服器,否則操作系統的線程限制,會導致並 發降低。 第二、除非原來就採用的是COMET 的進度方式,否則,你要把周期獲得進度的方式,改成 COMET 的方式,那很郁悶的,COMET 要伺服器主動把進度信息用JAVASCRIPT 的方式發回客戶端 ,所以需要把結構轉化為JAVASCRIPT 調用才行。 第三、對於不同的瀏覽器,處理 JAVASCRIPT 的方式是不一樣的,我試驗的結果是,IE 會在收 到一定數量的JAVASCRIPT 之後才執行,所以雖然我在伺服器端每次都調用了flush 方法,但 是界面上還是需要等一段時間才能響應。而這段時間又不好控制了,因為上傳文件大小的不 一樣,導致了下發的JAVASCRIPT 數量也不一樣,所以基本很難達到FLASH 那樣的效果。 其實如果已經決定採用flash 了,那就不需要再去修改伺服器端的代碼了,因為那個進度信 息伺服器發不發都不會影響到代碼的執行,反正FLASH 本身已經提供了進度指示了,所以, 說簡單地,要改成FLASH 上傳,你直接做個FLASH 客戶端就好了,不需要再改伺服器端了。 對了,還有一種情況需要改伺服器端,那就是FLASH 上傳多個文件是採用多線程上傳的,因 此如果你一次上傳多個文件,那就需要改伺服器端了。需要在所有線程上傳完成的情況下, 再去修改資料庫

B. 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);

C. 阿里雲oss上傳文件怎麼返回上傳文件的url

addUserMetadata("usermeta" If you need to set user metadata URL url = client; 2)java版代碼示例如下, " generatePresignedUrlRequest.setMethod(HttpMethod? new GeneratePresignedUrlRequest(bucketName;/: generatePresignedUrlRequest; generatePresignedUrlRequest:GeneratePresignedUrlRequest generatePresignedUrlRequest = 1)url中包含簽名的好像能夠實現文件的下載; /.PUT););uservalue"Oss中url中授權文件上傳可以實現 java版代碼示例如下,阿里雲能實現url中授權文件上傳嗎;, key).setExpiration(expires).generatePresignedUrl(generatePresignedUrlRequest)

D. 上傳圖片到oss然後獲取到圖片的url,然後通過url在網頁查看圖片怎麼弄。

保存圖片地址,類似「~/Images/UserId/face.png」那麼這個屬於伺服器端相對地址stringdir=@"\UserFiles\Images\";stringphyPath=Request.PhysicalApplicationPath;stringvirPath=dir+Server.HtmlEncode(FileUpload1.FileName);stringsavePath=phyPath+virPath;fileUpload.SaveAs(savePath);那麼你往資料庫里保存的就是virPath這個虛擬路徑。virPath=Server.MapPath(dir+FileUpload1.FileName);這也是轉換正相對URL。

E. 求助,OSS的JAVA上傳出錯,以前沒有出現錯誤

主要是由於沒有指定endpoint這個參數導致的 !
OSS服務目前分杭州跟青島節點,兩個節點都有自己的獨立請求地址,如果bucket創建在青島節點上,默認使用oss.aliyuncs.com地址去請求,就會報以上錯誤,所以在操作之前要確認endpoint裡面的請求地址跟bucket是否都一致,如果需要青島跟杭州兩個節點的bucket都需要請求,那就需要建多個osscleint,定義endpoint的時候,需要將青島跟杭州節點的地址都添加進去,詳細的可以查看SDK demo!

F. javascript 上傳文件到阿里雲的oss,上傳文件成功後怎麼獲取文件的真實路徑

如果你直接使用 javascript 將阿里雲的accessId、accessKey寫在頁面上是不安全的,你可以使用後台存儲這些敏感的信息,官網有相關的SDK ,你可以選擇你常用的。

在後台編寫你的回調函數,將回調函數憑證信息返回給前端,前端使用回調函數憑證訪問OSS,就可以獲取到回調函數信息。

G. 上傳圖片到阿里雲的OSS上,可以嗎

可以啊,用的什麼系統? 界面的話,直接進去在根目錄復制粘貼。
如果是命令界面的話,採用FTP工具外部上傳

H. 通過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;
}

I. 怎麼用javaweb上傳文件到阿里雲OSS

前段時間正好做個項目,就是用的oss,普通上傳和斷點續傳,代碼貼出來,看是不是你需要的
public class OssManage {
public static String ACCESS_KEY_ID = null;
public static String ACCESS_KEY_SECRET = null;
public static String ENDPOINT = null;
public static String BUCKETNAME = null;
public static String BUCKETNAME_VIDEO = null;
public static String OUT_OF_DATE = null;
private OSSClient client = null;
private ObjectMetadata meta = 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.Exception e) {
e.printStackTrace();
}
}

public void init(){
// 初始化一個OSSClient
client = new OSSClient(ENDPOINT,ACCESS_KEY_ID, ACCESS_KEY_SECRET);
meta = new ObjectMetadata();
}

/**
* @Description: 上傳文件到OSS文件伺服器
* @param content 文件流
* @param key 上傳為OSS文件伺服器的唯一標識
* @param mimeType 文檔類型
* @throws Exception
* @ReturnType:String OSSObject的ETag值。
*/
public String uploadFile(InputStream content,String key,String mimeType) throws Exception{
//進行初始化
init();
// 必須設置ContentLength
meta.setContentType(mimeType);
// 上傳Object.
LogUtil.printConsoleLog("*****************上傳圖片到oss伺服器開始*****************" + key);
PutObjectResult result = client.putObject(BUCKETNAME, key, content, meta);
LogUtil.printConsoleLog("*****************上傳圖片到oss伺服器結束*****************" + key);
return result.getETag();
}

/**
* @Description: 根據key獲取oss伺服器上的圖片地址
* @param key
* @return
* @ReturnType:String
*/
public String getImgURl(String key){
init();
Date expires = new Date (new Date().getTime() + Integer.parseInt(OUT_OF_DATE)); // 30 minute to expire
GeneratePresignedUrlRequest generatePresignedUrlRequest ;
if(key.startsWith("msplatform")){
generatePresignedUrlRequest =new GeneratePresignedUrlRequest(BUCKETNAME, key);
}else {
generatePresignedUrlRequest =new GeneratePresignedUrlRequest(BUCKETNAME_VIDEO, key);
}
generatePresignedUrlRequest.setExpiration(expires);
URL url = client.generatePresignedUrl(generatePresignedUrlRequest);
return url.toString();
}
/**
* @Description:根據key獲取oss伺服器上的ipa文件地址
* @param key
* @return
* @ReturnType:String
*/
public String getIpaURl(String key){
init();
Date expires = new Date(new Date().getTime()+ 10*365*24*3600*1000);
GeneratePresignedUrlRequest generatePresignedUrlRequest ;
if(key.startsWith("msplatform")){
generatePresignedUrlRequest =new GeneratePresignedUrlRequest(BUCKETNAME, key);
}else {
generatePresignedUrlRequest =new GeneratePresignedUrlRequest(BUCKETNAME_VIDEO, key);
}
generatePresignedUrlRequest.setExpiration(expires);
URL url = client.generatePresignedUrl(generatePresignedUrlRequest);
return url.toString();
}

/**
* @Description: 根據key獲取oss伺服器上的圖片地址
* @param key
* @return
* @ReturnType:String
*/
public InputStream getObject(String key){
init();
OSSObject object = null;
if(key.startsWith("msplatform")){
object= client.getObject(BUCKETNAME, key);
}else{
object= client.getObject(BUCKETNAME_VIDEO, key);
}
object.getObjectMetadata().getContentType();
// 獲取Object的輸入流
InputStream objectContent = object.getObjectContent();

return objectContent;
}

/**
* @Description:刪除文件
* @param key OSS文件伺服器上文件的唯一標識
* @ReturnType:void
*/
public void deleteFile(String key){
init();
client.deleteObject(BUCKETNAME, key);
}

/**
* @Description: 斷點上傳文件到OSS文件伺服器
* @param content 文件流
* @param key 上傳為OSS文件伺服器的唯一標識
* @param position 位置
*/
public String appendObjectFile(InputStream content,String key,int position,String mimeType) throws Exception{
//進行初始化
init();
// 必須設置ContentLength
meta.setContentLength(position);
meta.setContentType(mimeType);
meta.setCacheControl("no-cache");
meta.setContentEncoding("utf-8");
// 上傳
LogUtil.printConsoleLog("*****************斷點上傳圖片到oss伺服器開始*****************" + key);
AppendObjectRequest appendObjectRequest = new AppendObjectRequest(BUCKETNAME, key, content, meta);
appendObjectRequest.setPosition(Long.valueOf(position));
AppendObjectResult appendObjectResult =client.appendObject(appendObjectRequest);
LogUtil.printConsoleLog("*****************斷點上傳圖片到oss伺服器結束*****************" + key);
return appendObjectResult.getNextPosition().toString();
}

public static void main(String[] args) {
OssManage ossManage = new OssManage();
}

熱點內容
安卓咪咕音樂怎麼錄制視頻 發布:2024-05-19 07:56:06 瀏覽:837
如何搞出超大聲的聽聲辨位安卓版 發布:2024-05-19 07:46:21 瀏覽:926
linux安全模式 發布:2024-05-19 07:27:25 瀏覽:175
為什麼安卓手機安裝不了cpk 發布:2024-05-19 07:22:21 瀏覽:312
pythonempty 發布:2024-05-19 07:15:16 瀏覽:928
路由器虛擬伺服器搭建 發布:2024-05-19 07:15:15 瀏覽:998
方舟編譯器何時推送 發布:2024-05-19 07:15:10 瀏覽:597
魔獸世界自動釣魚腳本 發布:2024-05-19 06:43:07 瀏覽:495
cbs加密 發布:2024-05-19 06:29:56 瀏覽:202
ssis存儲過程 發布:2024-05-19 06:21:31 瀏覽:632