我需要将一些 *.csv 文件从位于 azure linux webapp 中的 .sh 文件上传到 azure blob 存储。是否可以做到这一点或者我该如何做到这一点。如果可能的话,有人可以提供示例代码吗?
最佳答案
当然,您可以使用Runtime.getRunTime().exec在Java代码中运行shell脚本,示例代码如下:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class RunningSS {
public static void main(String[] args) {
Process p;
try {
String[] cmd = { "sh", "/home/adb/Documents/test.sh"};
p = Runtime.getRuntime().exec(cmd);
p.waitFor();
BufferedReader reader=new BufferedReader(new InputStreamReader(
p.getInputStream()));
String line;
while((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
要在 shell 脚本中上传文件,可以使用 Azure CLI 命令或 azcopy 。例如,如果要将文件上传到 Azure 存储文件,则 CLI 命令为 az storage file upload
,但如果使用CLI,则需要先安装它。请参阅Install the Azure CLI .
我不推荐使用 REST API,它太复杂了。如果你不介意的话,可以尝试一下。
关于linux - 如何使用位于 azure webapp 中的 .sh 文件将多个文件从本地存储上传到 azure blob 存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58705223/