You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否通过SFTP客户端一步将Azure Blob Storage文件复制到另一SFTP服务器?

问题解答

Azure Blob Storage是否支持SFTP客户端连接?

Azure Blob Storage本身不支持直接通过SFTP客户端连接,但可以通过以下两种方式实现SFTP访问:

  • 启用Blob Storage的SFTP功能:在存储账户配置中开启SFTP端点,设置对应的访问凭据和容器权限后,就能用标准SFTP客户端连接并操作Blob容器内的文件。
  • 通过中间服务中转:使用Azure Data Factory、Logic Apps等服务作为中间层,实现Blob与SFTP服务器之间的文件传输,但这不属于直接用SFTP客户端连接Blob的场景。

Java应用能否一步完成Blob到目标SFTP服务器的传输,无需落地到客户端本地?

可以实现,核心是采用流式传输方案,全程在内存中处理文件数据,无需写入本地磁盘:

  1. 使用Azure Storage Blobs Java SDK读取Blob文件的输入流;
  2. 借助Java SFTP客户端库(如JSch、Apache Commons VFS),直接将该输入流上传到目标SFTP服务器。

简单实现示例

import com.azure.storage.blob.BlobClient;
import com.azure.storage.blob.BlobClientBuilder;
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;

import java.io.InputStream;

public class BlobToSftpTransfer {
    public static void main(String[] args) throws Exception {
        // 1. 获取Azure Blob的输入流
        BlobClient blobClient = new BlobClientBuilder()
                .connectionString("YOUR_BLOB_CONNECTION_STRING")
                .containerName("YOUR_CONTAINER_NAME")
                .blobName("YOUR_BLOB_FILE_NAME")
                .buildClient();
        InputStream blobInputStream = blobClient.openInputStream();

        // 2. 连接SFTP服务器并上传流
        JSch jsch = new JSch();
        Session session = jsch.getSession("SFTP_USERNAME", "SFTP_SERVER_HOST", 22);
        session.setPassword("SFTP_PASSWORD");
        session.setConfig("StrictHostKeyChecking", "no");
        session.connect();

        ChannelSftp sftpChannel = (ChannelSftp) session.openChannel("sftp");
        sftpChannel.connect();
        // 直接上传输入流到SFTP指定路径
        sftpChannel.put(blobInputStream, "/remote/path/target-file-name");

        // 关闭资源
        sftpChannel.disconnect();
        session.disconnect();
        blobInputStream.close();
    }
}

内容的提问来源于stack exchange,提问作者Ramar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 09:22:05