阿里云OSS实战指南

在这里插入图片描述

阿里云对象存储服务(Object Storage Service,简称OSS)是阿里云提供的一种稳定、安全、易用的云存储服务。本文将详细介绍如何使用阿里云OSS,并通过一个实例来演示如何上传、下载和删除文件。

一、创建AccessKey

  1. 登录阿里云控制台,点击右上角的用户名,选择“AccessKey管理”。
  2. 点击“创建AccessKey”,输入AccessKey名称和描述,然后点击“确定”。
  3. 创建成功后,系统会生成两个AccessKey ID和AccessKey Secret,请妥善保管。

二、安装阿里云SDK

  1. 使用npm安装阿里云OSS SDK:npm install ali-oss
  2. 在项目中引入阿里云OSS SDK:const OSS = require('ali-oss');

三、配置阿里云OSS客户端

  1. 设置AccessKey ID和AccessKey Secret:const client = new OSS({accessKeyId: 'your_access_key_id', accessKeySecret: 'your_access_key_secret', region: 'your_region'});
  2. 设置Bucket名称:const bucketName = 'your_bucket_name';
  3. 设置Endpoint:const endpoint = 'your_endpoint';
  4. 创建Bucket实例:const ossClient = new OSS({...clientConfig, bucket: bucketName});

四、上传文件

  1. 生成上传凭证:const policyBase64 = await client.signatureUrl( e n d p o i n t / {endpoint}/ endpoint/{bucketName}/${fileName}, {expiration: 3600});
  2. 获取上传凭证URL:const uploadUrl = policyBase64;
  3. 使用HTML表单或第三方库(如axios)发送POST请求,将文件上传到阿里云OSS。

五、下载文件

  1. 生成下载凭证:const policyBase64 = await client.signatureUrl( e n d p o i n t / {endpoint}/ endpoint/{bucketName}/${fileName}, {expiration: 3600});
  2. 获取下载凭证URL:const downloadUrl = policyBase64;
  3. 使用HTML表单或第三方库(如axios)发送GET请求,从阿里云OSS下载文件。

六、删除文件

  1. 生成删除凭证:const policyBase64 = await client.signatureUrl( e n d p o i n t / {endpoint}/ endpoint/{bucketName}/${fileName}, {expiration: 3600});
  2. 获取删除凭证URL:const deleteUrl = policyBase64;
  3. 使用HTML表单或第三方库(如axios)发送DELETE请求,从阿里云OSS删除文件。

七、完整实例代码

const OSS = require('ali-oss');
const fs = require('fs');
const axios = require('axios');
const FormData = require('form-data');

// 配置阿里云OSS客户端
const clientConfig = {
  accessKeyId: 'your_access_key_id',
  accessKeySecret: 'your_access_key_secret',
  region: 'your_region'
};
const bucketName = 'your_bucket_name';
const endpoint = 'your_endpoint';
const ossClient = new OSS({...clientConfig, bucket: bucketName});

// 上传文件
async function uploadFile() {
  const fileName = 'test.txt'; // 文件名
  const fileContent = fs.readFileSync(fileName); // 读取文件内容
  const policyBase64 = await client.signatureUrl(`${endpoint}/${bucketName}/${fileName}`, {expiration: 3600}); // 生成上传凭证URL
  const uploadUrl = policyBase64; // 获取上传凭证URL

  // 使用HTML表单或第三方库(如axios)发送POST请求,将文件上传到阿里云OSS。
}

// 下载文件
async function downloadFile() {
  const fileName = 'test.txt'; // 文件名
  const policyBase64 = await client.signatureUrl(`${endpoint}/${bucketName}/${fileName}`, {expiration: 3600}); // 生成下载凭证URL
  const downloadUrl = policyBase64; // 获取下载凭证URL

  // 使用HTML表单或第三方库(如axios)发送GET请求,从阿里云OSS下载文件。
}

// 删除文件
async function deleteFile() {
  const fileName = 'test.txt'; // 文件名
  const policyBase64 = await client.signatureUrl(`${endpoint}/${bucketName}/${fileName}`, {expiration: 3600}); // 生成删除凭证URL
  const deleteUrl = policyBase64; // 获取删除凭证URL

  // 使用HTML表单或第三方库(如axios)发送DELETE请求,从阿里云OSS删除文件。
}
``


八、应用实例使用阿里云OSS制图床

1. 创建一个用于上传图片的Servlet。

```java
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.model.PutObjectRequest;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/upload")
public class ImageUploadServlet extends HttpServlet {
    private static final String ENDPOINT = "*** Provide your OSS endpoint ***";
    private static final String ACCESS_KEY_ID = "*** Provide your Access Key ID ***";
    private static final String ACCESS_KEY_SECRET = "*** Provide your Access Key Secret ***";
    private static final String BUCKET_NAME = "*** Provide your Bucket Name ***";

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String imageUrl = req.getParameter("imageUrl");
        String objectName = System.currentTimeMillis() + ".jpg";

        OSS ossClient = new OSSClientBuilder().build(ENDPOINT, ACCESS_KEY_ID, ACCESS_KEY_SECRET);
        PutObjectRequest putObjectRequest = new PutObjectRequest(BUCKET_NAME, objectName, new URL(imageUrl));
        ossClient.putObject(putObjectRequest);
        ossClient.shutdown();

        resp.getWriter().write("Image uploaded successfully! Object name: " + objectName);
    }
}
  1. 在前端页面中,创建一个表单用于上传图片。
<form action="/upload" method="post" enctype="multipart/form-data">
    <input type="file" name="imageUrl" accept="image/*">
    <button type="submit">Upload</button>
</form>

九、总结

通过以上步骤,我们已经成功地使用阿里云OSS制图床搭建了一个个人图片存储系统。用户可以将本地的图片上传到OSS上,然后在需要的地方引用这些图片。这种方式不仅可以节省存储空间,还可以提高访问速度。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程式员阿波

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值