Java集成移动云EOS存储

首先,我们可以看移动云的API文档,下载他的开发包,导入我们的项目。

请添加图片描述

右击 文件 —》项目结构 —》库 —》点击右上角添加符号

请添加图片描述

导入我们下载的SDK依赖,然后去移动云官网快速入门把SDK复制下来

请添加图片描述

如下图所示

@ApiOperation("文件上传")
@PostMapping("/upload")
public RespBean upload(@RequestPart MultipartFile multipartFile) throws IOException {
    String hostname = "域名"; // 域名
    String accessKey = "AccessID"; // 秘钥ID
    String secretKey = "AccessSecretKey"; // 秘钥值
    String bucketName = "桶名称"; // 桶名称
    String objectKey = "upload/"+multipartFile.getOriginalFilename(); // 设置指定路径
    // multipartFile.getOriginalFilename() 文件名
    // 创建 AmazonS3Client
    ClientConfiguration opts = new ClientConfiguration();
    opts.setSignerOverride("S3SignerType"); //单次上传
    AWSCredentials credentials = new BasicAWSCredentials(accessKey, secretKey);
    AmazonS3Client client = new AmazonS3Client(credentials, opts);
    client.setEndpoint(hostname);
    // 上传文件(Object)
    byte[] content = multipartFile.getBytes();
    // 解决文件文件只能下载不能查看问题
    // ObjectMetadata objectMetadata = new ObjectMetadata();
  //objectMetadata.setContentType(getcontentType(multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf("."))));
    // objectMetadata 设置为空默认为每次打开都会下载文件
    System.out.println(objectMetadata.getContentType());
    client.putObject(bucketName, objectKey,
            new ByteArrayInputStream(content), objectMetadata);
    client.setObjectAcl(bucketName,objectKey, CannedAccessControlList.PublicRead);
    // 关闭 client
    client.shutdown();
    // 访问路径 https://桶.域名/相对路径
    return RespBean.success("成功",client.getResourceUrl(bucketName,objectKey));
}

解决图片上传之后访问只能下载不能预览问题

  // 预览图片格式设置(解决图片上传之后访问只能下载不能预览问题)
    public static String getcontentType(String FilenameExtension) {
        if (FilenameExtension.equalsIgnoreCase(".bmp")) {
            return "image/bmp";
        }
        if (FilenameExtension.equalsIgnoreCase(".gif")) {
            return "image/gif";
        }
        if (FilenameExtension.equalsIgnoreCase(".jpeg") ||
                FilenameExtension.equalsIgnoreCase(".jpg") ||
                FilenameExtension.equalsIgnoreCase(".png")) {
            return "image/jpg";
        }
        if (FilenameExtension.equalsIgnoreCase(".html")) {
            return "text/html";
        }
        if (FilenameExtension.equalsIgnoreCase(".txt")) {
            return "text/plain";
        }
        if (FilenameExtension.equalsIgnoreCase(".vsd")) {
            return "application/vnd.visio";
        }
        if (FilenameExtension.equalsIgnoreCase(".pptx") ||
                FilenameExtension.equalsIgnoreCase(".ppt")) {
            return "application/vnd.ms-powerpoint";
        }
        if (FilenameExtension.equalsIgnoreCase(".docx") ||
                FilenameExtension.equalsIgnoreCase(".doc")) {
            return "application/msword";
        }
        if (FilenameExtension.equalsIgnoreCase(".xml")) {
            return "text/xml";
        }
        return "image/jpg";
    }

至此,我们集成移动云EOS就完成了

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Java本身不支持GPT模型,但可以通过使用Java调用Python GPT库,实现GPT模型的集成。下面是一个简单的示例代码: 1. 首先,你需要安装Python和相应的GPT库,例如transformers库。 2. 编写一个Python脚本,实现GPT模型的加载和对话功能,例如以下代码: ```python from transformers import AutoModelForCausalLM, AutoTokenizer import torch tokenizer = AutoTokenizer.from_pretrained("microsoft/DialoGPT-medium") model = AutoModelForCausalLM.from_pretrained("microsoft/DialoGPT-medium") def generate_response(input_text): input_ids = tokenizer.encode(input_text + tokenizer.eos_token, return_tensors='pt') chat_history_ids = model.generate(input_ids, max_length=1000, pad_token_id=tokenizer.eos_token_id) response = tokenizer.decode(chat_history_ids[:, input_ids.shape[-1]:][0], skip_special_tokens=True) return response ``` 3. 在Java中调用Python脚本,实现与GPT模型的交互。可以使用Python的subprocess模块来实现。例如以下代码: ```java import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class GPTChatbot { public static void main(String[] args) throws IOException { // Initialize Python process Process process = Runtime.getRuntime().exec("python gpt.py"); // Get input and output streams BufferedReader input = new BufferedReader(new InputStreamReader(process.getInputStream())); BufferedReader error = new BufferedReader(new InputStreamReader(process.getErrorStream())); // Send input to Python process String userInput = "Hello"; process.getOutputStream().write(userInput.getBytes()); process.getOutputStream().flush(); // Receive output from Python process String output = input.readLine(); System.out.println(output); // Close input and error streams input.close(); error.close(); // Wait for Python process to complete try { process.waitFor(); } catch (InterruptedException e) { e.printStackTrace(); } } } ``` 这个例子中,Java调用了一个名为“gpt.py”的Python脚本,然后向Python脚本发送一个字符串“Hello”,并从Python脚本获取回应。你可以根据需要修改这个代码,实现更复杂的对话逻辑。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值