package io.loli.sc.server.storage; import io.loli.sc.server.entity.StorageBucket; import java.io.File; public abstract class StorageUploader { public abstract String upload(File file); public abstract String upload(File file, String contentType); public abstract void delete(String file); public static StorageUploader newInstance(StorageBucket bucket) { StorageUploader uploader = null; switch (bucket.getType()) { case StorageBucket.ALI_TYPE: uploader = new AliStorageUploader(bucket.getAccessKeyId(), bucket.getAccessKeySecret(), bucket.getEndPoint(), bucket.getUploadUrl(), bucket.getName()); break; case StorageBucket.QN_TYPE: uploader = new QnStorageUploader(bucket.getAccessKeyId(), bucket.getAccessKeySecret(), bucket.getEndPoint(), bucket.getName()); break; case StorageBucket.UP_TYPE: uploader = new UpStorageUploader(bucket.getAccessKeyId(), bucket.getAccessKeySecret(), bucket.getEndPoint(), bucket.getName()); break; } return uploader; } }