2017-11-18 21 views
1

私の記憶装置としてS3を使用していて、すべて動作しますが、パスを指定すると、スラッシュはフォルダと同じになります。しかし、フォルダやファイル名の中にスラッシュを使用したいと思っています。それ、どうやったら出来るの?私のコードは次のとおりです。パスにスラッシュを含めるにはどうすればいいですか?

public static function GetS3UploadPath($school_name, $subject) 
{ 
    $class_name = isset($subject->ofClass->id) ? $subject->ofClass->name : ''; 
    $class = $class_name ? $class_name . ' - ' : ''; 
    $subject_folder = $subject->year->start_year.'-'.$subject->year->end_year.' - '.$class.$subject->name; 

    return $school_name.'/assignments/answers/'.$subject_folder; // here 
} 

$subject_folderは、フォルダが作成されますよう、スラッシュを持って、代わりにそのフォルダ名の一部であることはできません。

S3 Folders

答えて

0

、そして答えは「スラッシュはフォルダ名やファイル名に属している場合、どのように私が言うことができる」S3は本当に..フォルダを持っていないので、あなたが持っている問題は、より多くのです - あなたを彼らはまったく同じなので、できません。あなたが本当にスラッシュをしたい場合は、フォルダの区切りのためのいくつかの他の文字、多分|か何かに予約する必要があります。また

school_name|assignments|answers/by_students|1997-1998/... 

を、あなたは文字のいくつかの他の配列とスラッシュをエンコードすることができ、その後、表示するときに、それらをunencode何かのように:

school_name/assignments/answers!!by_students/1997-1998!!... 
+0

S3管理コンソールで見ることができるように、S3にはフォルダがあります。 –

+0

フォルダの区切りはスラッシュです –

+0

いいえ、これは単なる表現です。http://docs.aws.amazon.com/AmazonS3/latest/dev/ListingKeysHierarchy.htmlを参照してください。 – xs0