Oh wow... I had not noticed that method on URL.  I'll certainly give it a
try.  Thanks!

Joe

On Thu, Dec 18, 2014 at 10:06 AM, Oleg Kalnichevski <ol...@apache.org>
wrote:
>
> On Thu, 2014-12-18 at 09:23 -0600, Joe Barnes wrote:
> > Thanks for the insight, Oleg.  I was not aware that the key to
> > repeatability was knowing the length in advance.  That seems to suggest
> we
> > could have an API that accepted the stream and a length to produce a
> > repeatable multipart entity.
> >
> > As for converting the URLs to files, I'm not sure there is a clean way to
> > do that since we are running in a servlet container without access to the
> > file system.
>
> I was thinking about something rather trivial, like that:
>
> URL resource = Testing.class.getResource("/my-stuff.bin");
> File file = new File(resource.getFile());
> System.out.println(file + " exists: " + file.exists());
>
> Oleg
>
>
> >  I'll do some research and see if there is a means of making
> > this conversion that I'm not currently aware of.
> >
> > Joe
> >
> >
> > On Thu, Dec 18, 2014 at 3:17 AM, Oleg Kalnichevski <ol...@apache.org>
> wrote:
> > >
> > > On Wed, 2014-12-17 at 17:37 -0600, Joe Barnes wrote:
> > > > Hello community!
> > > >
> > > > My team is faced with a problem where we need to send a resource
> that is
> > > > available via URL (more precisely, it is on our classpath).  We are
> > > running
> > > > in a servlet container, so we don't have direct access to the file
> > > system.
> > > > I completely understand why the chunks are marked as "Non-repeatable"
> > > when
> > > > using an InputStream, because in general they are not necessarily
> > > > repeatable.
> > > >
> > > > Currently we are reading the URL in its entirety to memory, then
> shipping
> > > > it off.  This is quite burdensome because of the size of the
> resources
> > > and
> > > > number of concurrent users we can expect.  The best we can do is
> create a
> > > > singleton of the value in memory, but it still is expensive for
> something
> > > > which could certainly be streamed.
> > > >
> > > > Are there any approaches we can utilize to send a URL's contents to a
> > > > multi-part while being repeatable without reading it entirely into
> > > memory?
> > > >
> > > > Thanks!
> > > > Joe
> > >
> > > Joe,
> > >
> > > Presently MultipartFormEntity cannot be repeated if length of any of
> its
> > > parts is unknown, which is the case with body parts backed by a
> > > InputStream or a URL. In your particular case, however, given that URLs
> > > represent local resources you should be able to convert them to File
> > > instances and thus make their length known in advance.
> > >
> > > Oleg
> > >
> > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: httpclient-users-unsubscr...@hc.apache.org
> > > For additional commands, e-mail: httpclient-users-h...@hc.apache.org
> > >
> > >
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: httpclient-users-unsubscr...@hc.apache.org
> For additional commands, e-mail: httpclient-users-h...@hc.apache.org
>
>

Reply via email to