jimp-dev / jimp

An image processing library written entirely in JavaScript for Node, with zero external or native dependencies.
http://jimp-dev.github.io/jimp/
MIT License
13.9k stars 761 forks source link

Could not find MIME for Buffer #161

Closed diegohaz closed 7 years ago

diegohaz commented 8 years ago

I'm trying to write unit tests for the following code:

    Jimp.read('https://farm8.staticflickr.com/7454/9551387978_c3439d9e38_t.jpg', (err, image) => {
      image.resize(3, 3)
      image.getBase64(Jimp.AUTO, (err, base64) => {
        //...
      })
    })

I'm using nock-vcr-recorder-mocha to record the request and save it, which gives me the following file:

[
  {
    "scope": "https://farm8.staticflickr.com:443",
    "method": "GET",
    "path": "/7454/9551387978_c3439d9e38_t.jpg",
    "body": "",
    "status": 200,
    "response": "ffd8ffe000104a46494600010100000100010000ffdb0043000302020302020303030304030304050805050404050a070706080c0a0c0c0b0a0b0b0d0e12100d0e110e0b0b1016101113141515150c0f171816141812141514ffdb00430103040405040509050509140d0b0d1414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414ffc00011080045006403011100021101031101ffc4001d000002020203010000000000000000000002040305010800060709ffc40037100001030301060305070403000000000001020311000421310512224151610607f013327181b108425291c1d1f11415a1e1236282ffc4001b01000300030101000000000000000000000102030004050607ffc4002f110002020104020200040407000000000000010211030412213113411451223261b1058191f0152471a1d1e1f1ffda000c03010002110311003f00d142ca402394e34a9ed6d1b6e51bb246d94f21118102aab13e682a71aa436db2027088e9f0f5356586bd85e5490db4c123852227588a7f0293b15e5b630cdaabf0e9823ad5bc2ba607978b27162b5424eb8e203e94cb06ee509e5fd431b354a2144e089c8c76f5f0a6f171d08f2701aec14069041e589a2b4f4ea81e6e459ed9fed011ca348cd15a777663cea881cd9f20ce4f30072a68e99bec5f3ee7d826cf074e9cbe9f2a77a47ed0be7bf602ad3770904284e99f9d3ad2b22f508c9b700e408e519c53fc56bd93f9088ffb70d3bcd43c12f65a59d2e8658b10559004f5071eb1565a56279edd0fdb59708204826410339ad88e8ff426f3a5d8f35620a63013a6bacd6d2d135e847a94875ab04913ee99e79fe3956cc344faa11ea57df032d6ce1034827302ab1d2323f21f64ff00db401f7802790c8c553e1abb125a9be2c8cd88cca71323b53ad24570847a87f62eeecd33d3bf4aa7c74eac579c4ffa03301b03a0299e959f1e295d13f33a23362499038a7a56785455231e595f001b1de046a7a4649ac7815da15e56d029b1291c24a41cc19acf157423936ecc26cf1094e0f38a8ac2a8ab9bfb1bb7b124204c679e3f8ff7578614ba15e47e8b063669594f09d753c8f6aaac692b5ec96f6fd960c6ce07bc919eb5b318d3e41bd8fb1620ef1824fe21d69b62489b917fe1cf06ed3f14df26c7636ccbedab7ab129b6b0b75bee11d7752098efa62a793263c6b765924bfa06319e47514d9e8d75f656f33edb678bb5782368b8c0d45b7b27dc4f62da16560f6226b4ff00c5742e54b22ff7ff00c3665a4d4257b7f63cc769f87ae3665db96d756cf59ddb24a1c61f68b6b6c8d4292a0083d88adf528496f83e3d35ff0026a494a2ea5c156ed9048c40229f72f606e849eb2489ce79444d0b69d4474ec5d76824402003d3e951946d58dfe840ab60527079c6247ad74a5a6b8883a38960241e208c9c14cd49a57d07be8810c8469227ae22826bda1bbec69a6d3bc64e7fcd374856be8758426120e00c19a74eba07058b084ef26707e1a557736ad7423aa1db7666001be47fd75a64fd20f0f836f3c8a523c15b3d8b6b1425b2f252bbc7c892fab520f548d00cd792d6ff009893937d747674ad2fc313de58f1ded1d8db69cbc0961eb1b65a5a532c8e100a63968411ceb8ef4d09469be7f53a7bdae4eb5e77f97bb27ed05e1c370db09b0f18376aa77664b10ebae244a99538042db581002b295410471035d1e79ff0fcbddc2f9fe7eebed1ada8c2b3c38fcde8f9e170d61240224030a107e75f42e19e6abd0838d0924e27f2a7b5f953a0f5d0a3ad468a18ea2a6e50ed879e8814d82b33d7ef6b524d25c99cb0433dd5f249fda95ca3ec1c7b156d1c40400ac1200922b59497b2fb5be2865969424c11d6339154b5d88e32634c324eee0f233134772f4c2d363ec21408118d73cff7a7dea280e0e8b3b51ecdc42a080920c038d67d7c6839a4ac45077c9b4fe5a78b6cdbb02994179d48970a27d993ac7622bcb6a524fbff00b3b1a66a2b6a365bcafdb5b315b145bfb34deb5090b0f2107893c8c0c8cccf7af39ab93ddbcecc171c1dcacad2cd5b42dfd93e8658b60156a5421c64471277b983de7fcd683cd2a6bfa95dafd9f2c3cc976d2efc75e25bab148166fed5bb76dd28c0f66a796a4c76822be99a7ccd618465dd2fd8f2f9312791b5d5b3a7b884ef6a71d359ab3cd26bf08be2427709404100648c7c695e6e07f18aef0de2788249e9ad49e76ba03c5f47202711bc394cfe953f3bfeeca2c241294401079569f9dfa66cf8d93217c19576e801ab473dbfd45f1d3a1a6de0a8839d55dbad08e757d8162a4f819b770c01bda6bda9be42e527c85e27e90f34fc449d351c8563d4a5ca623c32be8efbe04f19b7b394865e586c050295c4c8e9db5ae7e7fc6bf0f25e38e51369fcaaf33762ecad9b70d24a54ebe52a716493313a74d74af2ba94dcd59d7c3b6b8657f9bdf68cb7d81e1cb9d9db36ed2bdb1769294fb28258111bea3c8e7035273caa9a4d3cb2e4529afc283972545a8f7fb1a557b7892ae1d4691a91e857abf91b5da393e28b6561bd482323f141c8acf33e958d1c69093f7849826463300faff5527964d71c07645762aa7d792350224f5e7f4a47be5da0547b003ca330543ff04fe94774e3d21ef1aecc1b893eeccc6741dab9ca7369da366a00a6e64e39e22a91defa137417630d5d70ef41e87d7ae7558c323e84f240650eac831209ce4e2acb4f91f2d742f9228610e2f788dd548cebad556932512f9101a69e750a111c819c66aeb472b125a98d962d6d8bab66b710fb881d028d55685bec47ab8a17b8ba5ba78d467ba8d5be15117ab1279056278b9646a6acb4714c9bd50a2adf8a025400d20e9ebf4a7f871ae45f94dfb0176b956e889c6ecfaed565a4dbe88bd4cbab2155b49def766702b3e3452a4894b3c9aa4c10d96e400ac993c3355f8b0f6159e5f640a624ee80441fba6b9d1d2451b2f52fbb11bebe4ecd75b416d4e38a4ef40300091d69fe3c234a8979a4fd96d6a1bb861b71b24214014ceb5bb1d3f3c2ec8bcd24e9962cb41b120e75f853ac2a3daa02cae5d0c30d06d249191a8d6a9e382a5f62791db466120281103962acb145f449e47d9852e099037b4f9d5fc4a2d31778057c425518d39508e38dd203c94ad040e20030660d32c64f7fb3037549d31c8694ea31a177bf602d023a46bda7f8ac7049877d5223081ae4ceb4362542bcb61a40204909edb934365f290be592e885b6c2c2ce907771f2cfd3f2ae7c5adc97f7d1b6e55c91dcecab5bc28170d070a5450954c1189fd2ade3539f3f43db7c0ddbdbb69642929dd4a112103a413154dd4d70455cb81c4b416a41d379507f3a127b9362a74e906e0f64a8d4ab98a2bf2a68a76d04e310bdd060491f947ef5b1154c5970cae33b933f788fad3cdd35fa88df340ea507f1091db134ab997225be906fff00c409d4f3e5d69dc6dedfe426db391ba14ae8323ae26b22c45f4613ef2519ca8a66748fe2b124d58f25c6e2569016a2048c033353ddbbb4499c402a4821440e9ad339eca48afe4e0fffd9",
    "headers": {
      "date": "Wed, 24 Aug 2016 03:04:30 GMT",
      "content-type": "image/jpeg",
      "content-length": "2554",
      "connection": "close",
      "x-photo-farm": "8",
      "p3p": "policyref=\"https://policies.yahoo.com/w3c/p3p.xml\", CP=\"CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE LOC GOV\"",
      "x-photo-origin": "bf1",
      "cache-control": "max-age=604800, public",
      "expires": "Mon, 24 Aug 2026 07:44:02 UTC",
      "x-flickr-dry": "yes",
      "last-modified": "Tue, 23 Aug 2016 21:36:22 GMT",
      "accept-ranges": "bytes",
      "age": "19688",
      "via": "http/1.1 pc-pool114.flickr.bf1.yahoo.com (ApacheTrafficServer [cRs f ])",
      "server": "ATS",
      "x-photo-farm-guess": "8",
      "access-control-allow-origin": "*",
      "access-control-allow-methods": "POST, GET, OPTIONS"
    }
  }
]

It works perfectly if I don't mock the request, but using that file it gives me the following error:

Error: Could not find MIME for Buffer <https://farm8.staticflickr.com/7454/9551387978_c3439d9e38_t.jpg> (HTTP: 200)
strandedcity commented 7 years ago

@diegohaz are you still looking for help with this?

https://github.com/oliver-moran/jimp/blob/master/index.js#L183

the third parameter of the Request callback is the body of the response, which in your fixture is an empty string. Are you sure this isn't a bug with vcr?

diegohaz commented 7 years ago

Hi, @strandedcity . Thank you. It was probably a problem with VCR. I just stopped using it and created mocks myself.