2017-11-18 37 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

相關問題