    001package org.opengion.hayabusa.io;
    002
    003import java.io.InputStream;
    004import java.util.Map;
    005
    006import jakarta.servlet.http.HttpSession;
    007
    008/**
    009 * クラウドストレージ操作用のインターフェイス。
    010 *
    011 * 継承クラスのコンストラクターはコンテナ名とHTTPセッションを持たせます。
    012 *
    013 * @og.group
    014 * @og.rev 5.9.25.0 (2017/10/06) 新規作成
    015 *
    016 * @version 5.0
    017 * @author T.OTA
    018 * @since JDK7.0
    019 */
    020public interface StorageAPI {
    021        /**
    022         * トークンキー
    023         */
    024        String SESSION_CLOUD_TOKEN = "SESSION_CLOUD_TOKEN";                     // 7.2.9.4 (2020/11/20) public static final
    025
    026        /**
    027         *  ファイル情報に格納されている値
    028         *  サイズ
    029         */
    030        String FILEINFO_SIZE = "SIZE";                                                          // 7.2.9.4 (2020/11/20) public static final
    031
    032        /**
    033         * 最終更新時刻
    034         */
    035        String FILEINFO_LASTMODIFIED = "LASTMODIFIED";                          // 7.2.9.4 (2020/11/20) public static final
    036
    037        /**
    038         * 削除。
    039         *
    040         * @param filePath      削除ﾌｧｲﾙのﾊﾟｽ
    041         * @param hsession      ｾｯｼｮﾝ
    042         */
    043        void delete(String filePath, HttpSession hsession);
    044
    045        /**
    046         * ｺﾋﾟｰ。
    047         *
    048         * @param oldFilePath   ｺﾋﾟｰ元ﾌｧｲﾙﾊﾟｽ
    049         * @param newFilePath   ｺﾋﾟｰ先ﾌｧｲﾙﾊﾟｽ
    050         * @param hsession              ｾｯｼｮﾝ
    051         */
    052        void copy(String oldFilePath, String newFilePath, HttpSession hsession);
    053
    054        /**
    055         * ﾀﾞｳﾝﾛｰﾄﾞ。
    056         *
    057         * @param filePath      ﾀﾞｳﾝﾛｰﾄﾞ対象のﾌｧｲﾙﾊﾟｽ
    058         * @param hsession      ｾｯｼｮﾝ
    059         * @return ストリーム
    060         */
    061        InputStream get(String filePath, HttpSession hsession);
    062
    063        /**
    064         * ｱｯﾌﾟﾛｰﾄﾞ。
    065         *
    066         * @param partInputStream       ｱｯﾌﾟﾛｰﾄﾞ対象のｽﾄﾘｰﾑ
    067         * @param updFolder             ｱｯﾌﾟﾛｰﾄﾞﾌｫﾙﾀ名
    068         * @param updFileName           ｱｯﾌﾟﾛｰﾄﾞﾌｧｲﾙ名
    069         * @param hsession                      ｾｯｼｮﾝ
    070         */
    071        void add(InputStream partInputStream, String updFolder, String updFileName, HttpSession hsession);
    072
    073        /**
    074         * ﾌｧｲﾙ名変更。
    075         *
    076         * @param fileUrl               ﾌｧｲﾙﾊﾟｽ
    077         * @param oldFileName   変更前ﾌｧｲﾙ名
    078         * @param newFileName   変更後ﾌｧｲﾙ名
    079         * @param useBackup     変更後ﾌｧｲﾙ名が既に存在する場合のﾊﾞｯｸｱｯﾌﾟ作成ﾌﾗｸﾞ
    080         * @param session               ｾｯｼｮﾝ
    081         */
    082        void rename(String fileUrl, String oldFileName, String newFileName, final boolean useBackup, HttpSession session);
    083
    084        /**
    085         * ﾌｧｲﾙ一覧取得。
    086         *
    087         * @param startsWith    ﾊﾟｽの前方一致
    088         * @param hsession              ｾｯｼｮﾝ
    089         * @return                              ﾌｧｲﾙﾊﾟｽ一覧
    090         */
    091        String[] list(String startsWith, HttpSession hsession);
    092
    093        /**
    094         * ﾌｧｲﾙ存在ﾁｪｯｸ。
    095         *
    096         * @param path                  ﾌｧｲﾙﾊﾟｽ
    097         * @param hsession              ｾｯｼｮﾝ
    098         * @return                              true:存在 false:存在しない
    099         */
    100        boolean exists(String path, HttpSession hsession);
    101
    102        /**
    103         * ﾌｧｲﾙ情報取得。
    104         *
    105         * @param path                  ﾌｧｲﾙﾊﾟｽ
    106         * @param hsession              ｾｯｼｮﾝ
    107         * @return                              ﾌｧｲﾙ情報格納Map
    108         */
    109        Map<String,String> getInfo(String path, HttpSession hsession);
    110}