2016-06-08 2 views
6

Imgix 또는 Cloudinary과 같은 이미지 서비스로 Firebase 저장소를 사용하려고합니다. 그러나 Firebase가 제공하는 다운로드 URL은 이러한 서비스와 함께 작동하지 않습니다. 예를 들어Firebase 저장소 - 이미지 서비스 URL

는 :

http://res.cloudinary.com/demo/image/fetch/http://upload.wikimedia.org/wikipedia/commons/0/0c/Scarlett_Johansson_C%C3%A9sars_2014.jpg

하지만, 내 다운로드 URL을 더 다음과 같습니다 : Cloudinary는이 같은 이미지를 가져올 수 있다고

https://firebasestorage.googleapis.com/v0/b/project-503247351211329470.appspot.com/changedsoitdoesnotwork/o/O8Hv4nKOyGgcCyOLoVLH7cQw48y2%2Fimages%2F1.jpeg?alt=media&token=28eabf76-f85b-45aa-das3-fd945729d7c2

위의 URL에서 일부 문자를 변경 했으므로 내가 Stackoverflow에서 gazillion 요청을 원하지 않기 때문에 작동합니다. :)

내가 할 수있는 일이 있습니까? 아마도 스토리지 버킷에 요청을 바로 보낼 수 있습니까?

답변

7

Imgix 또는 Cloudinary와 같은 서비스를 Firebase 저장소 URL과 함께 절대적으로 사용할 수 있습니다.이 경우 문제는 99 %의 경우와 마찬가지로 가져 오기에서 URL을 이스케이프 처리해야합니다.

우리는 같은 URL이있는 경우 : https%3A%2F%2Ffirebasestorage.googleapis.com%2Fv0%2Fb%2Ffir-cloudvisiontest.appspot.com%2Fo%2Fimages%252Fimage.jpg%3Falt%3Dmedia%26token%3D61d35caf-b209-485f-8248-a3c2aa717468 (예, 실제로 이스케이프 어떤 퍼센트 인코딩을 다시 탈출) : 그것은해야합니다 https://firebasestorage.googleapis.com/v0/b/fir-cloudvisiontest.appspot.com/o/images%2Fimage.jpg?alt=media&token=TOKEN

이 같은 탈출 할 수 있습니다.

처럼 보이는 Cloudinary URL 초래

: URL 인코딩에 대한 허용 오차 http://res.cloudinary.com/<your-project>/image/fetch/https%3A%2F%2Ffirebasestorage.googleapis.com%2Fv0%2Fb%2Ffir-cloudvisiontest.appspot.com%2Fo%2Fimages%252Fimage.jpg%3Falt%3Dmedia%26token%3DTOKEN

감안할 때 서비스의 차이, 마일리지는 다를 수 있습니다, 그래서 http://meyerweb.com/eric/tools/dencoder/ 같은 도구를 사용하여 URL을 테스트하는 이미지가 작동하는지 확인하는 것이 좋습니다 .

+1

안녕하세요. 이것은 실제로 Cloudinary를 위해 나를 위해 일합니다. :) 그러므로 이미 답변으로 표시되어 있습니다. 어쩌면 당신은 다음과 같은 나를 도와 줄 수 있습니다 : Imgix를 위해 그것은 아직 작동하지 않습니다. 저는 https://docs.imgix.com/setup/serving-images를보고 있습니다. "웹 폴더 소스"를 선택합니다. 예제 URL을 가져 와서 도메인을 선택하는 경우 : https://firebasestorage.googleapis.com/v0/b/fir-cloudvisiontest.appspot.com 다음 URL을 추가하십시오. https : // .imgix.net/images % 252Fimage.jpg % 3Falt % 3Dmedia % 26token % 3DTOKEN 제대로 작동합니까? 어쩌면 당신은 당신의 생각을 줄 수 있습니다. 그렇지 않으면 지원을 요청할 것입니다. :) – Timon

+0

잘 모르겠습니다 - 나는 그것에 익숙하지 않지만 작동한다고 추측합니다. 웹 프록시 방법을 사용하고 서명하면 Cloudinary 솔루션에 가장 근접합니다. 장기적으로, 나는 imgix가 S3 버킷 외에 GCS 버킷을 지원하기를 바랍니다. 문제가 해결되면 해결할 수 있기 때문입니다. –

+1

답장을 보내 주셔서 감사합니다. 나는 Imgix에 연락하여 그들이 그것에 관해 무엇인가 할 수 있는지 알아볼 것입니다. :) – Timon

2

Cloud SDK를 사용할 때 url() 메소드를 사용하여 가져 오기 URL을 만들 수 있습니다. 다음은 JavaScript SDK 사용이 URL이 제대로 인코딩되어 있는지 확인합니다

var cl = cloudinary.Cloudinary.new({cloud_name: "<your cloud>"}); 
var storageRef = firebase.storage().ref(); 

storageRef.child('images/image.jpg').getDownloadURL().then(function(url) { 
    var cloudinary_url = cl.url(url, {type: "fetch"}); 
    // Do something with the URL... 
    console.log(cloudinary_url); 
} 

.

관련 문제