HUAWEI Driveへのファイルアップロード手順
- HUAWEI Driveに接続する
- 親フォルダのオブジェクトを取得/生成する
- com.huawei.cloud.services.drive.model.Fileオブジェクトを作る
- ファイル名、mimeType、親フォルダを設定する
- InputStreamを指定し、HUAWEI Driveのファイルアップロードリクエストを実行する
注意点
1. アップロード先にすでに同じファイル名のファイルが存在する場合、アップロード先のファイル名が勝手に{ファイル名}(次の番号).{拡張子}に置き換わります。
サンプル
private var drive: Drive? = null
fun saveBuffer(driveFilename: String, folderName: String, isApplicationData: Boolean, inputStream: InputStream, inputStreamLength: Long, mimeType: String): com.huawei.cloud.services.drive.model.File? {
drive?.let { drive ->
// ドライブにフォルダを作成
var directoryCreated = getFile(folderName, true, isApplicationData)
if (null == directoryCreated) {
directoryCreated = createFolder(folderName, isApplicationData)
}
directoryCreated?.let { directoryCreated ->
// 既存ファイルを削除
val oldFile = getFile(driveFilename, false, isApplicationData)
if (null != oldFile) {
deleteFile(oldFile)
}
// 中身をアップロード
val streamContent = InputStreamContent(mimeType, inputStream).apply {
length = inputStreamLength
}
val content = com.huawei.cloud.services.drive.model.File()
.setFileName(driveFilename)
.setParentFolder(listOf(directoryCreated.id))
val request = drive.files().create(content, streamContent)
return request.execute()
}
}
return null
}
GitHub
HMS Drive Kit Demo : https://github.com/Rei2020GitHub/MyPublicProject/tree/master/DriveKitDemo
参考
- HMS:https://developer.huawei.com/consumer/jp/
- HMS Drive Kitの紹介:https://developer.huawei.com/consumer/jp/hms/huawei-drivekit
- HMS Drive Kitのドキュメント:https://developer.huawei.com/consumer/jp/doc/development/HMSCore-Guides/introduction-0000001050039630
- Huawei Developers:https://forums.developer.huawei.com/forumPortal/en/home
- Facebook Huawei Developersグループ:https://www.facebook.com/Huaweidevs/