/*
 * Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved.
 *
 * https://www.mall4j.com/
 *
 * 未经允许，不可做商业用途！
 *
 * 版权所有，侵权必究！
 */

// 该类所属的包名，表明其位于商城项目的通用（common）Java Bean（bean）包下，通常用于存放一些通用的数据模型类，这些类用于封装特定业务相关的数据信息，方便在不同的业务逻辑层之间传递和使用。
// 这里的Qiniu类主要用于封装七牛云存储相关的配置信息，以便在项目中对七牛云存储进行操作时可以方便地获取和使用这些配置参数。
package com.yami.shop.common.bean;

import com.yami.shop.common.enums.QiniuZone;
import lombok.Data;

/**
 * Qiniu类是一个Java Bean，用于封装七牛云存储的配置信息，在项目中如果涉及到使用七牛云来存储文件（如图片、文档等各类资源），
 * 就需要通过这个类来配置和获取相关的关键参数，例如访问密钥、存储桶名称等信息，同时借助lombok的@Data注解自动生成常用的方法，方便对这些配置信息进行操作。
 *
 * @author lgh
 */
@Data
// 使用lombok的@Data注解，会自动为该类生成Getter、Setter、toString、equals、hashCode等方法，减少了手动编写这些重复代码的工作量，使得代码更加简洁，方便对类中成员变量进行访问和操作。
public class Qiniu {

    // 七牛云的访问密钥（Access Key），用于在与七牛云存储服务进行交互时进行身份验证，相当于用户名的作用，具有访问权限控制的功能，只有拥有正确的访问密钥才能对七牛云存储资源进行相应的操作。
    private String accessKey;

    // 七牛云的秘密密钥（Secret Key），与访问密钥配合使用，用于对请求进行签名等安全验证操作，确保请求的合法性和安全性，是保证七牛云存储数据安全的重要配置参数之一。
    private String secretKey;

    // 七牛云存储中的存储桶（Bucket）名称，存储桶是七牛云存储中用于存放文件等资源的容器，类似于文件夹的概念，不同的项目或者业务模块可以使用不同的存储桶来进行资源的分类存储和管理。
    private String bucket;

    // 资源访问的URL地址，用于在项目中访问存储在七牛云存储桶中的资源时使用，通过这个地址可以拼接具体的资源路径，从而在前端或者其他需要使用资源的地方获取到对应的文件内容，例如图片资源的展示等。
    private String resourcesUrl;

    // 七牛云存储的区域（Zone）信息，通过引用QiniuZone枚举类型来指定，不同的区域对应着不同的数据中心位置，选择合适的区域可以优化资源的存储和访问速度等性能，同时也可能涉及到不同的网络配置等因素。
    private QiniuZone zone;
}