네트워크 파일이 있는지 확인

네트워크 파일이 있는지 확인

나는 많이 봤지만 이 문제를 해결할 수 없었다.

로컬 파일에서는 작동하게 할 수 있지만 네트워크 파일에서는 작동하지 않습니다.

파일이 있는지 확인하고 싶어요인터넷에서존재하지만 어떻게?

내 터미널에서 이것을 시도했습니다.

 [ -f "192.168.1.46:8090/camera.jpg" ] && echo 1 || echo 0

파일이 존재한다고 확신하는 동안 계속 0이 출력됩니다. 누구든지 도와줄 수 있나요?

편집하다:

더 명확하게 말하자면:

내 Raspberry Pi(Raspbian 포함)에서 FFserver와 FFmpeg를 실행합니다. 스트림을 Camera.mjpeg 및 Camera.jpg로 트랜스코딩합니다. 내 Raspberry Pi 자체의 로컬 IP 주소는 19.168.1.46이므로 때때로 트랜스코딩 프로세스가 중단되고 mjpeg가 파일을 읽을 수 없기 때문에 파일이 아직 거기에 있는지 확인하고 싶었습니다. 이제 다음 쉘코드가 생겼습니다.

  #!/bin/bash       
  url=http://192.168.1.46:80/test.txt
  url2=http://192.168.1.46:8090/camera.mjpeg

  if curl --output /dev/null --silent --head --fail "$url"; then
    echo "URL exists: $url"
  else
    echo "URL does not exist: $url"
  fi

  if curl --output /dev/null --silent --head --fail "$url2"; then
    echo "URL exists: $url2"
  else
    echo "URL does not exist: $url2"
  fi

출력은 다음과 같습니다.

  URL exists: http://192.168.1.46:80/test.txt
  URL does not exist: http://192.168.1.46:8090/camera.mjpeg

문제는: 다른 PC의 브라우저를 통해 액세스하여 문제 없이 볼 수 있기 때문에 Camera.mjpeg가 있다고 확신하지만 여전히 존재하지 않는다고 표시됩니다.

답변1

192.168.1.46:8090/camera.jpg단순히 존재하지 않는 파일의 이름입니다 camera.jpg(현지의./192.168.1.46:8090.directory 라는 디렉터리가 ./192.168.1.46:8090존재하지 않습니다.)

컬(curl)이나 wget(wget)과 같이 서버에 액세스할 수 있는 프로그램을 사용해야 합니다.

서버가 HTTP인 경우 curl옵션을 사용하여 --head서버에 파일을 보내지 않고 HTTP 헤더만 보내도록 지시합니다. 이 정도면 충분합니다. 예를 들어curl --head http://192.168.1.46:8090/camera.jpg

관련 정보