/** * */ package jframe.qiniu.service; import jframe.core.plugin.annotation.InjectPlugin; import jframe.core.plugin.annotation.Injector; import jframe.core.plugin.annotation.Start; import jframe.core.plugin.annotation.Stop; import jframe.core.plugin.service.ServiceException; import jframe.qiniu.QiniuConfig; import jframe.qiniu.QiniuPlugin; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.qiniu.util.Auth; import com.qiniu.util.StringMap; /** * @author dzh * @date Jul 28, 2015 10:29:10 AM * @since 1.0 */ @Injector class QiniuServiceImpl implements QiniuService { @InjectPlugin static QiniuPlugin PLUGIN; static Logger LOG = LoggerFactory.getLogger(QiniuServiceImpl.class); static String FILE_CONF = "file.qiniu"; static QiniuConfig CONFIG = new QiniuConfig(); static Auth AUTH; static String HTTP = "http://"; static String HTTP_SEPERATOR = "/"; @Start void start() { try { CONFIG.init(PLUGIN.getConfig(FILE_CONF)); if ("".equals(CONFIG.getConf(null, QiniuConfig.AK))) { throw new ServiceException( "Error in configuration , lost parameter -> " + QiniuConfig.AK); } if ("".equals(CONFIG.getConf(null, QiniuConfig.SK))) { throw new ServiceException( "Error in configuration , lost parameter -> " + QiniuConfig.SK); } AUTH = Auth.create(CONFIG.getConf(null, QiniuConfig.AK), CONFIG.getConf(null, QiniuConfig.SK)); LOG.info("QiniuService start successfully!"); } catch (Exception e) { LOG.error("QiniuService start error -> {}", e.getMessage()); } } @Stop void stop() { CONFIG = null; } /* * (non-Javadoc) * * @see jframe.qiniu.service.QiniuService#uploadToken(java.lang.String, * java.lang.String) */ @Override public String uploadToken(String bucket, String key) { return uploadToken(bucket, key, -1L); } @Override public String uploadToken(String bucket, String key, long expires) { return uploadToken(bucket, key, expires, null); } @Override public String privateDownloadUrl(String bucket, String key, long expires) { if (LOG.isDebugEnabled()) { LOG.debug("privateDownloadUrl -> {}", HTTP + CONFIG.getConf(bucket, QiniuConfig.DOMAIN) + HTTP_SEPERATOR + key); } return AUTH.privateDownloadUrl( HTTP + CONFIG.getConf(bucket, QiniuConfig.DOMAIN) + HTTP_SEPERATOR + key, expires); } @Override public String publicDownloadUrl(String bucket, String key) { if (LOG.isDebugEnabled()) { LOG.debug("publicDownlaodUrl -> {}", HTTP + CONFIG.getConf(bucket, QiniuConfig.DOMAIN) + HTTP_SEPERATOR + key); } return HTTP + CONFIG.getConf(bucket, QiniuConfig.DOMAIN) + HTTP_SEPERATOR + key; } @Override public String uploadToken(String bucket, String key, long expires, StringMap policy) { return uploadToken(bucket, key, expires, policy, true); } @Override public String uploadToken(String bucket, String key, long expires, StringMap policy, boolean strict) { if (expires == -1) expires = Long.parseLong(CONFIG.getConf(bucket, QiniuConfig.UPLOAD_EXPIRE, "3600")); return AUTH.uploadToken(bucket, key, expires, policy, strict); } }