質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

0回答

3494閲覧

AWS s3へのファイルアップロード方法

rjberger19

総合スコア33

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2015/11/05 05:17

編集2015/11/05 05:24

こちらのサイトを参考に、AWSのS3へファイルのアップロードをしたいと考えております。
http://javatechnology.net/other/amazon-s3-fileupload/

jspは以下の通りで完成をしておりますが、servletでファイルを取得する際
Part型もしくは他の型(Listなど)となります。

jsp

1<%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4<html> 5<head> 6<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 7<title>Insert title here</title> 8</head> 9<body> 10<form action="/UploadServlet" method="post" enctype="multipart/form-data"> 11画像ファイル: 12<br> 13<input type="file" name="filename" multiple> 14<br> 15<br> 16<input type="submit" value="upload"> 17</form> 18</body> 19</html>

サーブレットは以下のようなものをイメージしております。

java

1package servlet; 2 3import java.io.File; 4import java.io.IOException; 5 6import javax.servlet.ServletException; 7import javax.servlet.annotation.WebServlet; 8import javax.servlet.http.HttpServlet; 9import javax.servlet.http.HttpServletRequest; 10import javax.servlet.http.HttpServletResponse; 11import javax.servlet.http.Part; 12 13import AWS関連のファイル 14 15/** 16 * Servlet implementation class UploadServlet 17 */ 18@WebServlet("/UploadServlet") 19public class UploadServlet extends HttpServlet { 20 private static final long serialVersionUID = 1L; 21 22 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 23 doPost(request,response); 24 } 25 26 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 27 //アップされたファイルをpart型で取得 28 Part part = request.getPart("filename"); 29 30 //Part型で取得したファイルを何かしらの方法でFile型に変換 31 File file = ~~~~; 32 33 //AWS S3にアップロード 34 String bucketName = "bucket-name"; 35 String filePath = "/aiueo/"; 36 String fileName = "aiueo.jpeg"; 37 38 // ここで、accessKeyとsecretKeyを設定しています。 39 // Keyは、AwsCredentials.propertiesに設定しています 40 AmazonS3 s3 = new AmazonS3Client(new ClasspathPropertiesFileCredentialsProvider()); 41 42 s3.putObject(new PutObjectRequest(bucketName, filePath+fileName, file)); 43 44 } 45 46} 47

part型、List型など取得の方法にこだわりはないのですが、Servletでファイルを受け取った後どのようにすればFile型に変換できるのでしょうか?
もしくはFile型に変換しない形でServletからデータを受け取りS3にアップロードする方法は無いでしょうか?

皆様のお知恵をお貸し頂きたく。

今考えられる(実現可能性は置いといて)解決策は以下のものです。
1.Part型、List型で取得したファイルをPart型に変換
2.AWS S3にpart型でそのまま書き込めるAPI的なものを使用
3.part型で取得後、一時的に保存をしてFileオブジェクトに一時的に保存したファイルを再度読み込む

どうぞ、よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問