activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dejan Bosanac <de...@nighttale.net>
Subject Re: Large File Transfer
Date Thu, 10 Jun 2010 09:15:46 GMT
Hi,

just to confirm that ActiveMQ comes with HTTP and FTP strategies for upload
and download, that doesn't support resume. This can be implemented as a
separate strategy. All contributions are welcomed.

Cheers
--
Dejan Bosanac - http://twitter.com/dejanb

Open Source Integration - http://fusesource.com/
ActiveMQ in Action - http://www.manning.com/snyder/
Blog - http://www.nighttale.net


On Thu, Jun 10, 2010 at 12:28 AM, kevinle92618 <kevinle92618@yahoo.com>wrote:

>
> Thanks Lou.  I was afraid of this.  If I understand you correctly, ActiveMQ
> does NOT support resume transfer.  However, you were able to get around
> that
> problem by implementing the snippet codes you mentioned in your previous
> post right?  Do you mind posting the codes for the TransferStatus class as
> well.  Many thanks.
>
>
> Lou Parisi wrote:
> >
> >
> > kevinle92618 wrote:
> >>
> >> I don't have answers to your questions.  I'm interested in knowing if
> >> ActiveMQ has the "resume" transfer capability for large file.  Please
> >> reply if you have the answer.  Thanks.
> >>
> >
> > It has been a while since I worked on this but I did get the "resume"
> > working.  As I recall, I kept track of the number of bytes transferred
> and
> > if there was a failure I just had to resume and read past that many bytes
> > and restart transfer.  Here is a snippet from some sample code I created
> > for testing.
> >
> >
> >    private static void startTransfer() throws Exception {
> >       RandomAccessFile outFile = null;
> >       InputStream in = null;
> >       byte[] buf = new byte[bufSize];
> >       int len = 0;
> >       URLConnection conn = null;
> >
> >       // len == -1 when end of InputStream is read
> >       while (len != -1) {
> >          try {
> >             conn = url.openConnection();
> >             conn.setConnectTimeout(connectionTimeout);
> >             in = getInputStream(conn);
> >             in.skip(transferStatus.getBytesDownloaded());
> >
> >             int count = 0;
> >             System.out.println("downloading");
> >             transferStatus.setStatus(TransferStatus.DOWNLOADING);
> >             outFile = new RandomAccessFile("build/outfile", "rw");
> >             outFile.seek(transferStatus.getBytesDownloaded());
> >             while ((len = in.read(buf)) > 0) {
> >                outFile.write(buf, 0, len);
> >                transferStatus.incrementBytesDownloaded(len);
> >                updateElapsedTime();
> >             }
> >          } catch (Exception e) {
> >             System.out.println("Exception transfering data: " +
> > e.getMessage());
> >          } finally {
> >             if ( in != null ) {
> >                in.close();
> >             }
> >             if ( outFile != null ) {
> >                outFile.close();
> >             }
> >             conn = null;
> >          }
> >       }
> >       System.out.println("transfer complete");
> >       transferStatus.setStatus(TransferStatus.COMPLETE);
> >    }
> >
> >
>
> --
> View this message in context:
> http://old.nabble.com/Large-File-Transfer-tp23378044p28836565.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message