- FAQ -


Basic setup
  • How to setup JS3Upload?
    JS3Upload includes a sample files: applet_s3.html + applet_s3.js
    Edit and modify parameters in the file matching to your need.
  • JS3Upload fails to load (gray box with red cross)?
    You must install JFileUpload first. Then you have to follow installation instructions above (copy s3upload.jar under lib/ folder ...).
  • JS3Upload installation is fine but it still fails to load?
    Are you using a Microsoft IIS web server ? If so, you need to allow .properties file serving by enabling ".properties" extension to "text/plain" mime-type. This issue is already explained in JFileUpload FAQ.
  • How to internationalize JS3Upload resources (messages, errors , ...)?
    In the same way as you can internationalize JFileUpload resources through i18n_bar_s3.properties and i18n_pane_s3.properties.
  • Where do I setup my S3 bucket name where files will be uploaded?
    Follow S3 -> S3 Settings menu:
    s3 menu for settings
  • How to setup ACL for uploaded objects?
    Same as question above.
  • How to upload to a public bucket?
    Setup S3 bucket name and leave all others parameters empty.
  • How can I trust in the applet because it asks me my AWSSecretKey?
    The AWSSecretKey is required to sign HTTP upload requests, however it's an optional parameter (see next question). It DOES NOT go outside the applet that runs on your computer. If you want to check it yourself then you can purchase the JS3Upload Premium that includes full source code.
  • How can I use JS3Upload without passing my AWSSecretKey?
    It depends on write permissions on your bucket.
    - Solution 1: If your bucket has public write permissions then you can leave
      AWSAccessKeyID and AWSSecretKey empty.
    - Solution 2: Use s3policy and s3signature parameters. These parameters allow to   define and sign some upload rules (i.e. form policy) which are valid for a period of   time. This is the Amazon S3 recommended solution over making a bucket publicly
      writable. You need an external tool to generate both parameters. We provide a   simple one here. Advanced users which are familiar with S3 policy can also use the   one provided by Amazon here. Here is a sample of parameters passed to applet:
        <PARAM NAME="param3" VALUE="s3bucket">
        <PARAM NAME="value3" VALUE="testbucket">
        <PARAM NAME="param4" VALUE="awsaccesskeyid">
        <PARAM NAME="value4" VALUE="1408TSMXTZQPMYZJ8101">
        <PARAM NAME="param5" VALUE="s3policy">
        <PARAM NAME="value5" VALUE="ewogICJleAuMDAwWiIsCi[...]IiXSwKICBdCn0K">
        <PARAM NAME="param6" VALUE="s3signature">
        <PARAM NAME="value6" VALUE="fuMZnt/jiMsCNvFtDxC6NlTwFFs=">
        <PARAM NAME="mode"
                      VALUE="jfileupload.transfer.client.s3.rest.POSTUploadTransfer">
    - Solution 3: Use awssignurl parameter and a script hosted on your web server that
       will generate signature. JS3Upload will issue an HTTP POST request with str form
       parameter including the string to sign.
        <PARAM NAME="param4" VALUE="awssignurl">
        <PARAM NAME="value4" VALUE="http://yourserver.com/sign.php">
  • Can I run S3Upload as standalone Java application instead of applet?
    Yes, run standalone_s3.bat script for Windows after updating JAVA_HOME variable.
  • Does JS3Upload support multipart upload?
    Yes, it supports multipart upload for resume support. To enable this feature you need several parameters:
    <PARAM NAME="resume" VALUE="true">
    <PARAM NAME="chunksize" VALUE="5242880">
    <PARAM NAME="chunkmode" VALUE="onflyrange">
    <PARAM NAME="preferences" VALUE="true">
Advanced setup
  • Can I upload files and folders recursively to my S3 bucket ?
    Yes, it's the same parameters as in JFileUpload. Enable "folderdepth" parameter and "relativefilename" extra parameters as shown below:
      <PARAM NAME="folderdepth" VALUE="-1">
      <PARAM NAME="param4" VALUE="relativefilename">
      <PARAM NAME="value4" VALUE="true">
    Uploaded object key will be: folder1/subfolder2/yourfilename.ext
  • Can I create virtual folder in my S3 bucket ?
    Yes, the applet allows to prepend a virtual folder name on each file uploaded through "account" extra parameter:
      <PARAM NAME="param5" VALUE="account">
      <PARAM NAME="value5" VALUE="virtual">
    Uploaded object key will be: virtual/yourfilename.ext
  • Is it possible to compress file before upload to the bucket ?
    Yes, it's the same parameter as in JFileUpload. You can either ZIP or GZIP each file to upload:
      <PARAM NAME="ziponfly" VALUE="zip">
  • Is it possible to encrypt file before upload to the bucket ?
    Yes you can PGP encrypt files. Install PGPFilter available in add-ons section.
  • Amazon S3 allows MD5 digest checking, how to enable it ?
    Add the following parameter in applet_s3.js JavaScript file:
    <PARAM NAME="checksum" VALUE="md5">
  • How to remove S3 item from menu ?
    Comment menu.s3 and menu.s3.settings in i18n_pane_s3.properties.
  • Can I pass S3 settings in applet parameters ?
    Yes, but it is NOT RECOMMENDED because you will expose your S3 settings to anyone loading the applet. So make sure to understand it before proceeding:
      <PARAM NAME="param3" VALUE="s3bucket">
      <PARAM NAME="value3" VALUE="yourbucketname">
      <PARAM NAME="param4" VALUE="awsaccesskeyid">
      <PARAM NAME="value4" VALUE="youraccesskeyid">
      <PARAM NAME="param5" VALUE="s3acl">
      <PARAM NAME="value5" VALUE="private">
    Values for s3acl could be: "public-read", "public-read-write", "private" and "authenticated-read". Default ACL is private.
  • Is it possible to pass secret key in applet parameters too ?
    Yes, but once again it is NOT RECOMMENDED because you will expose your S3 settings to anyone loading the applet. So make sure to understand it before proceeding:
      <PARAM NAME="param6" VALUE="awssecretkey">
      <PARAM NAME="value6" VALUE="yoursecretkey">
    Note that you can Base64 encode any parameter by enclosing it with [] chars. Base64 is not enryption (it could be reversed) but it's more secure than plain text.
    We provide a base64 encoder/decoder service here. For instance, if your secret key is ABC123QWERTY then you will setup:
      <PARAM NAME="param6" VALUE="awssecretkey">
      <PARAM NAME="value6" VALUE="[QUJDMTIzUVdFUlRZ]">
  • What are the differences between REST PUT/POST and SOAP upload ?
    The table below details the features available for REST and SOAP upload.
    Features
    REST PUT
    REST POST
    SOAP
    Upload
    Yes
    Yes
    Yes
    ACL
    Yes
    Yes
    No
    Bucket creation
    Yes
    Conditional
    No
    Non US bucket support
    Yes
    Yes
    No
    MD5 support
    Yes
    No
    No
    Policy support
    No
    Yes
    No
    Multipart and resume support
    Yes
    No
    No
Troubleshooting
  • I get NoSuchBucket error, what did I miss ?
    Default behavior of S3 applet is to upload to an existing bucket. If your target bucket doesn't exist then you get the "NoSuchBucket" error. You can setup the applet to create bucket before uploading through:
       <PARAM NAME="param7" VALUE="s3bucketcreation">
       <PARAM NAME="value7" VALUE="true">
    Notice that the ACL you've selected in S3 settings panel also applies to the new bucket. If you need a specific ACL for new created buckets then try:
       <PARAM NAME="param8" VALUE="s3bucketcreationacl">
       <PARAM NAME="value8" VALUE="private">
  • I get RequestTimeTooSkewed error, what's wrong ?
    Amazon server checks for date and time for the incoming request. Your computer is not at the correct date/time. Update it.
  • I get TemporaryRedirect error with EU bucket, what's wrong ?
    This error could happen when you to to upload files just after creating an EU bucket. Wait a few minutes and try again.
Others
  • Can I use JS3Upload Pro with JFileUpload Enterprise ?
    No, JS3Upload Pro works with JFileUpload Pro only. JS3Upload Enterprise requires JFileUpload Enterprise or Premium.

Java and all Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries.
All other company and/or product names are the property of their respective owners.