我是scala的新手并接管了一个项目,该项目正在上传并在将其传递给s3之前将其压缩。
文件在
中创建case Some(activityId: Long) =>
val tempFilePath = "/tmp/tack.%d".format(activityId)
val gzipTempFilePath = tempFilePath + ".gz"
val tempFile = new File(tempFilePath)
gpsTackFile.ref.moveTo(tempFile, true)
val fileName = Activity.tackFilePathFromId(activityId)
val mimeType = "text/plain"
val f = compressAndUpload(tempFilePath, fileName, mimeType)
压缩和上传在命令行上使用gzip,因为无法找到tempFilePath而失败
def compressAndUpload(tempFilePath: String, dstFileName: String, mimeType: String): Future[Boolean] = {
"gzip -9 " + tempFilePath ! match {
我认为问题可能是由于窗口和linux处理文件的方式有所不同,但尝试使用"""/tmp/tack.%d"""
并没有解决问题(这是我在尝试正确转义windows的字符串时发现的问题)。
我得到的错误是gzip: /tmp/tack.1024.gz: No such file or directory
答案 0 :(得分:0)
感谢响应中的@soong评论,我在我们的bash脚本中添加了TMP_DIR
作为全局
case $OS in
'Windows_NT')
TMP_PATH="c:$TMP"
;;
*)
TMP_PATH='/tmp'
;;
esac
export TMP_PATH
这适用于Windows 10,我无法对其他版本发表评论。开头需要驱动器号,因为它不包含在$TMP
变量